Po pierwsze, jeśli oczekujesz API przetestować rzucić wyjątek, zamiast robić try-catch
z fail()
...
@Test
public void testMe() {
try {
api.testThis();
fail("should not reach here");
}
catch(MyException e) {}
}
... należy zrobić to: -
@Test(expected=MyException.class)
public void testMe() {
api.testThis();
}
To powiedziawszy, rzadko używam fail()
. Jeśli trzeba wykonać pewną walidację oraz warunek nie powiedzie się, że najprawdopodobniej twierdzeń obsłudze niż przy użyciu fail()
... na przykład: -
... zamiast ...
@Test
public void testMe() {
boolean bool = api.testThis();
if (!bool) {
fail("should be true because bla bla bla");
}
}
... to zrobić: -
@Test
public void testMe() {
boolean bool = api.testThis();
assertTrue("bla bla bla",bool);
}
Jednakże, jeśli naprawdę trzeba użyć fail()
być rozwlekły i wyjaśnić, dlaczego nie zamiast „nie powinien dotrzeć tutaj” lub „nie powinny tu”, ponieważ to nie pomoże ludzi, którzy przeczytaj testcases.
To są po prostu proste przykłady ... ale myślę, że mam swoje punkty. :)
Podobają mi się również twoja nazwa użytkownika :) – JAM