测试没有预期的异常

Yur*_*yak 61 .net c# testing nunit unit-testing

我想创建NUnit测试以确保我的函数不会抛出异常.是否有一些特定的方法来做,或者我应该写

[Test]
public void noExceptionTest() {
  testedFunction();
}
Run Code Online (Sandbox Code Playgroud)

如果没有抛出异常,它会成功吗?

sll*_*sll 98

Assert.DoesNotThrow(() => { /* custom code block here*/});
Run Code Online (Sandbox Code Playgroud)

或者只是方法

Assert.DoesNotThrow(() => CallMymethod());
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅NUnit异常断言


Jac*_*eja 26

使用NUnit 3.0 约束模型类型断言代码如下所示:

Assert.That(() => SomeMethod(actual), Throws.Nothing);

此示例来自NUnit wiki.


das*_*ght 6

不抛出异常是正常的行动方式.您的测试将成功验证是否未引发异常.

  • 我同意,但我认为使用 Assert.DoesNotThrow 可以清楚地表明这是一个实际测试,而不是仅用于执行代码的测试。 (3认同)