关于java:最佳实践:fail()vs assertTrue(false)

Best practices: fail() vs assertTrue(false)

当故意使测试用例失败时(例如,当没有抛出异常时)我看到人们同时使用fail()和assertTrue(false)。 使用其中一个有什么好处吗?

1
2
3
4
try {
    //method call that should throw exception
    fail("oops");
} catch (Exception e) {}

1
2
3
4
try {
    //method call that should throw exception
    assertTrue("oops", false);
} catch (Exception e) {}


Are there any advantages to using one or the other?

功能上,没有。 但是,fail()更清楚地表达了意图,因此更好。


@Test注释中使用JUnit的expected参数

1
2
3
4
@Test(expected = ArithmeticException.class)  
public void divisionWithException() {  
    int i = 1/0;
}

如果未抛出ArithmeticException,则会失败。


assertTrue只是调用失败。

恕我直言失败()更简单,更清晰。


使用fail,否则有人会查看日志中的失败并思考"什么是假的,应该是真的"。


两者都可以使用(虽然fail更好,因为这是真正意图的),但由于你使用的是JUnit,你可以使用@Test(expected=MyException.class)代替。