首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSTest ExpectedException失败

MSTest ExpectedException失败
EN

Stack Overflow用户
提问于 2011-11-03 20:36:56
回答 6查看 4.9K关注 0票数 13

我通常使用Nunit,但在我当前的项目中,我使用的是MSTest。现在我有一个测试,它期望一个异常,但总是失败,我不知道为什么。

下面是我用来重复这个问题的一个简单的例子:

代码语言:javascript
复制
[TestMethod, ExpectedException(typeof(ErrorResponseException))]
        public void should_throw_exception()
        {
            throw new ErrorResponseException();
        }

ErrorResponseException是一个继承自Exception的类,就是这样,任何人都知道为什么它会失败,我希望它能通过。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-11-03 21:15:59

在NUnit中,我会避免使用ExpectedException,而使用Assert.Throws (异常断言)。它为您提供了更细粒度的控制。否则,如果测试方法的任何部分抛出该异常,则测试将通过。

在MSTest中,您可以获得与老式构造相同级别的控制:

代码语言:javascript
复制
try
{
    // code that you expect to throw goes here
    Assert.Fail("Expected MyException");
}
catch (MyException ex)
{
    // optionally assert on the message - this can make tests fragile though
}

这样,就不需要ExpectedException属性了。

(这个概念来自David Astels的“测试驱动的开发:实用指南”一书。)

票数 14
EN

Stack Overflow用户

发布于 2012-02-11 06:06:34

但是我编写了一个简单的程序集,它使用Assert.Throws()语法在MSTest中使异常和异常消息的断言变得更容易和更易读。我写了一个包含全部细节的blog post

票数 5
EN

Stack Overflow用户

发布于 2014-05-14 19:10:33

如果您使用的是MSTest 10.0.1.0.0,ExpectedException似乎无法正常工作,请改用10.0.0.0.0。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7994973

复制
相关文章

相似问题

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