我正在为一个项目使用 JUnit4 进行场景测试。
在其中一项测试中,我需要检查预期的异常。使用 JUnit4,我使用注释来做到这一点。
@Test(expected=...)
现在的问题是,在测试中引发异常的代码下面还有一些其他注释我需要检查哪些没有被执行。给出一个例子:
@Test(expected=NullPointerException.class)
public void nullPointerTest() {
Object o = null;
o.toString();
assertTrue(false);
}
这个测试通过了,因为它得到了 nullpointerexception,但是很明显,asserTrue(false) 有一个断言错误,因此我希望它失败。
解决此问题的最佳方法是什么?对此的解决方案可能如下,但我不知道这是否是正确的方法。
@Test
public void nullPointerTest2() {
boolean caught = false;
try{
Object o = null;
o.toString();
}
catch(NullPointerException e)
{
caught = true;
}
assertTrue(caught);
assertTrue(false);
}
第二次测试如预期的那样失败。