2013-10-10 9 views

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.

+0

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

Problemi correlati