In primo luogo, se si prevede che l'API si prova ad un'eccezione, invece di fare un try-catch
con un fail()
...
@Test
public void testMe() {
try {
api.testThis();
fail("should not reach here");
}
catch(MyException e) {}
}
... si dovrebbe fare: -
@Test(expected=MyException.class)
public void testMe() {
api.testThis();
}
Detto questo, uso raramente lo fail()
. Se ho bisogno di eseguire certi convalida e la condizione fallisce, userò più probabili affermazioni che usare fail()
... per esempio: -
... invece di ...
@Test
public void testMe() {
boolean bool = api.testThis();
if (!bool) {
fail("should be true because bla bla bla");
}
}
... fare questo: -
@Test
public void testMe() {
boolean bool = api.testThis();
assertTrue("bla bla bla",bool);
}
Tuttavia, se si ha realmente bisogno di utilizzare fail()
, essere prolisso e spiegare perché non riesce piuttosto che "non dovrebbe arrivare qui" o "dovrebbe fallire qui", perché questo non aiuta le persone che leggi i testicoli.
Concesso, questi sono solo esempi semplici .... ma penso di ottenere i miei punti. :)
Mi piace anche il tuo nome utente :) – JAM