例:
Assert.AreEqual(**null**, Program.nDaysMonth(5, -10), "Error nDaysMonth, Month may -10.");
Run Code Online (Sandbox Code Playgroud)
我期待一个例外.我怎么能在Assert.AreEqual中得到异常?
谢谢.
您不使用Assert.AreEqual,您使用Assert.Throws:
Assert.Throws<ArgumentOutOfRangeException>(() => Program.nDaysMonth(5, -10));
Run Code Online (Sandbox Code Playgroud)
这将检查是否抛出了正确的异常.如果要添加更多断言,可以使用返回值:
var exception = Assert.Throws<ArgumentOutOfRangeException>(...);
Assert.AreEqual("Foo", exception.Message); // Or whatever
Run Code Online (Sandbox Code Playgroud)
这适用于至少NUnit和xUnit; 如果您使用的是不同的测试框架,则应该寻找类似的功能.如果它不存在,我建议你自己实现它 - 它很容易做到,并且比替代品(try/catch块或方法范围的ExpectedException属性)更清晰.或者,如果可以,改变单元测试框架......
我还强烈建议您开始遵循正常的.NET命名约定 - nDaysMonth这不是一个好的方法名称...
一些框架支持使用[ExpectedException]属性来装饰方法- 我建议不要使用它:
| 归档时间: |
|
| 查看次数: |
1249 次 |
| 最近记录: |