Во-первых, если вы ожидаете, что тестируемый API выдаст исключение, вместо try-catch
с fail()
...
@Test
public void testMe() {
try {
api.testThis();
fail("should not reach here");
}
catch(MyException e) {}
}
... вы должны сделать это: -
@Test(expected=MyException.class)
public void testMe() {
api.testThis();
}
Тем не менее, я редко использую fail()
.Если мне нужно выполнить определенную проверку и условие не выполнено, я, скорее всего, буду использовать утверждения, чем использовать fail()
... например: -
... вместо ...
@Test
public void testMe() {
boolean bool = api.testThis();
if (!bool) {
fail("should be true because bla bla bla");
}
}
... сделать это: -
@Test
public void testMe() {
boolean bool = api.testThis();
assertTrue("bla bla bla",bool);
}
Однако, если вам действительно нужно использовать fail()
, будьте многословны и объясните, почему он терпит неудачу, а не "не должен достигать здесь" или "должен потерпеть неудачуздесь ", потому что это не помогает людям, которые читают тестовые случаи.
Конечно, это всего лишь простые примеры .... но я думаю, что я понял свои мысли.:)