今天,我将解决方案的所有基础项目从VS2008升级到VS2010。除了我的单元测试外,其他一切都进展顺利。

首先,只有Web项目将.NET 4作为目标框架。所有其他项目仍然具有.NET 3.5。我将它们全部更改为.NET 4。

现在,当我调试单元测试时,它会在每个异常时中断。在2008年,它不会通过并告诉我发生了异常。即使定义了ExpectedException属性,它也会停止调试每个异常。

我的测试之一的示例:

[TestMethod]
[ExpectedException(typeof(EntityDoesNotExistException))]
public void ConstructorTest()
{
    AddressType type = new AddressType(int.MaxValue);
}

EntityDoesNotExistException是一个自定义异常,并且继承Exception。

编辑
我查看了2008年和2010年的“异常(exception)”设置(ctrl + alt + e)。在两个版本中,设置都是相同的。但是在2008年,当我拥有ExpectedException属性时,调试不会中断。在2010年,它确实打破了。

最佳答案

根据Microsoft的说法,这不是错误,而是“设计使然”:

http://connect.microsoft.com/VisualStudio/feedback/details/511897/expectedexception-still-causes-debugging-to-break-with-exception-was-unhandled-by-user-code

关于unit-testing - TestMethod Visual Studio 2010上的ExpectedException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2628965/

10-10 01:19