NUnit:testing没有预期的exception
我想创buildNUnittesting,以确保我的函数不会抛出exception。 有没有一些具体的做法,或者我应该写
[Test] public void noExceptionTest() { testedFunction(); }
如果没有抛出exception,它会成功?
Assert.DoesNotThrow(() => { /* custom code block here*/});
或者只是方法
Assert.DoesNotThrow(() => CallMymethod());
有关更多详细信息,请参见NUnitexception声明
使用NUnit 3.0 约束模型types断言代码将如下所示:
Assert.That(() => SomeMethod(actual), Throws.Nothing);
这个例子来自NUnit维基 。
不抛出exception是正常的行为。 您的testing将成功validation不会引发exception。
是的,没有抛出exception – >testing通过。 如果有没有重新投掷try-catch块,它也会通过。
你是对的。 如果有例外,那么testing将会失败。
除非你指定
[ExpectedException( typeof(YourException) ) ] public void TestMethod() { ... }
或者如@sll所说,你使用更具体的
Assert.DoesNotThrow
断言 。
我认为有一个与unit testing逻辑有关的问题。 如果您在特定input下期待特定exception,则将其声明为预期的exception。 如果你只是检查你的函数是否正常工作,并且在这个正确的行为中没有预期到exception,那么你只需要编写它,如果它抛出任何exception,你的testing就会失败。
你的代码似乎工作正常,另一方面,只有检查没有例外可能不是unit testing的正确方法。 在unit testing中,通常你会得到一些输出(期望值),你有一些实际的输出(实际值),你断言预期值和实际值是相同的。