我有一个控制器方法,如果循环通过id列表找不到指定的id,则抛出自定义异常,否则返回局部视图.
我已经完成了测试,看看它是否成功返回部分视图但是如何测试该方法是否失败以及是否抛出了自定义异常?
Pat*_*ele 10
如果没有捕获预期的异常,可以执行简单的try/catch并执行Assert.Fail .但是,大多数单元测试框架提供了一种自动测试异常的方法.
Microsoft的MSTest具有ExpectedException可应用于测试方法的属性:
[ExpectedException(typeof(ArgumentNullException))]
[TestMethod]
public void DoSomething()
{ ... }
Run Code Online (Sandbox Code Playgroud)
如果测试方法上面确实不是抛出一个ArgumentNullException,MSTest的将标志着试验的失败.
NUnit具有更精细的特性Assert.Throws,可以更准确地控制测试方法中预期异常的位置.