首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用NUnit Assert.Throws方法还是ExpectedException属性?

使用NUnit Assert.Throws方法还是ExpectedException属性?
EN

Stack Overflow用户
提问于 2013-02-22 07:52:45
回答 3查看 74.8K关注 0票数 160

我发现这似乎是测试异常的两种主要方式:

代码语言:javascript
运行
复制
Assert.Throws<Exception>(()=>MethodThatThrows());

[ExpectedException(typeof(Exception))]

哪一个是最好的?其中一个是否提供了比另一个更好的优势?或者这仅仅是个人喜好的问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-22 07:59:53

第一个允许您使用多个调用测试多个异常:

代码语言:javascript
运行
复制
Assert.Throws(()=>MethodThatThrows());
Assert.Throws(()=>Method2ThatThrows());

第二个函数只允许您为每个测试函数测试一个异常。

票数 100
EN

Stack Overflow用户

发布于 2013-02-22 08:02:51

我更喜欢assert.throws,因为它允许我在异常抛出后验证和断言其他条件。

代码语言:javascript
运行
复制
    [Test]
    [Category("Slow")]
    public void IsValidLogFileName_nullFileName_ThrowsExcpetion()
    {
        var a = new MyTestObject();

        // the exception we expect thrown from the IsValidFileName method
        var ex = Assert.Throws<ArgumentNullException>(() => a.IsValidLogFileName(""));

        // now we can test the exception itself
        Assert.That(ex.Message == "Blah");

    }
票数 46
EN

Stack Overflow用户

发布于 2015-11-24 20:23:41

你也可以强输入你期望的错误(就像旧的attrib版本一样)。

代码语言:javascript
运行
复制
Assert.Throws<System.InvalidOperationException>(() => breakingAction())
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15014461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档