我正在尝试使用 nunits 新的异常处理方式,但我发现很难找到有关它的信息以及如何将它与 moq 一起使用。
我现在有最小起订量,它在模拟方法上引发异常,但我不知道如何使用 nunit 来捕获它并查看它。
有几种不同的方法可以做到这一点;我使用 Assert.Throws。
var exception = Assert.Throws<YourTypeOfException>(()=> Action goes here);
例如
var exception = Assert
.Throws<ArgumentNullException>(()=> new ChimpPuncher(null));
然后,您可以根据需要进一步查询异常对象,例如
Assert.That(exception.Message, Text.Contains("paramname");
最好的提法是:[ExpectedException(typeof(ApplicationException))]
上面的测试方法。
为什么不能将模拟的方法调用包含在 try/catch 块中并捕获抛出的特定异常?