当故意失败测试用例时(例如,当没有抛出异常时)我看到人们同时使用fail()和assertTrue(false)。使用其中一个有什么好处吗?
try {
//method call that should throw exception
fail("oops");
} catch (Exception e) {}
VS
try {
//method call that should throw exception
assertTrue("oops", false);
} catch (Exception e) {}
答案 0 :(得分:21)
使用其中一个有什么好处吗?
功能上,没有。但是,fail()
更清楚地表达了意图,因此更好。
答案 1 :(得分:13)
在expected
注释
@Test
参数
@Test(expected = ArithmeticException.class)
public void divisionWithException() {
int i = 1/0;
}
如果没有抛出ArithmeticException
,这将失败。
答案 2 :(得分:5)
assertTrue只是调用失败。
恕我直言失败()更简单,更清晰。
答案 3 :(得分:1)
两者都可以使用(虽然fail
更好,因为这是真正意图的),但由于你使用的是JUnit,你可以改用@Test(expected=MyException.class)
。
答案 4 :(得分:1)
使用fail
,否则有人会查看日志中的失败并思考“什么是假的,应该是真的”。