Mi chiedevo se c'è un'annotazione o un modo per eseguire il test solo se il pre-condimento incontra? Ho una situazione in cui alcuni test sono rilevanti fino a quando una data specifica è soddisfatta. Io uso JUnit, Mockito. GrazieCome ignorare il test dell'unità quando la condizione si incontra?
6
A
risposta
8
È possibile farlo utilizzando Assume.
Nell'esempio mostrato sotto, voglio verificare lo stato nel caso in cui precondition==true
e voglio affermare che l'eccezione è generata in caso di precondition==false
.
@Test
public final void testExecute() throws InvalidSyntaxException {
Assume.assumeTrue(precondition); // Further execution will be skipped if this holds true
CommandResult result = sentence.getCommand().execute();
boolean status = Boolean.parseBoolean(result.getResult());
Assert.assertTrue(status);
}
@Test(expected = InvalidSyntaxException.class)
public final void testInvalidParse() throws InvalidSyntaxException {
Assume.assumeTrue(!precondition);
CommandResult result = sentence.getCommand().execute();
}
Spero che questo ti aiuti.
5
È possibile utilizzare la classe di Assume
Un insieme di metodi utili per affermare le ipotesi circa le condizioni in cui un test è significativo. Un'assunzione fallita non significa che il codice è rotto, ma che il test non fornisce informazioni utili. Il runner JUnit predefinito tratta i test con ipotesi errate come ignorate.
così all'inizio del test è possibile scrivere
Assume.assumeThat("Condition not true - ignoreing test", myPreCondition);
e JUnit ignorerà questo test se myPreCondition
è falso.
L'unica cosa che devi fare attenzione è che la classe Assumi non ti darà alcun tipo di errore/indicatore ignorato (quando è in esecuzione su Maven almeno). Ciò significa che dovrai trovare un modo per identificare i test che sono stati saltati se questo genere di cose ti interessa. – JoshC13