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.
Problemi correlati
- 1. Apache Spark lancia NullPointerException quando si incontra la funzione mancante
- 2. Quando si verifica la condizione "Codice non raggiungibile" in Java?
- 3. SQL SELECT quando una condizione o altro incontra ma non entrambi
- 4. Come si ottiene ReSharper per ignorare determinate categorie quando si eseguono tutti i test?
- 5. Come ignorare la pagina di aggiornamento di Firefox quando si usa il selenio?
- 6. Salta tutti i test di test quando la condizione non è soddisfatta
- 7. Come si estrae una sottostringa da una stringa finché non si incontra il secondo spazio?
- 8. Dove spfun incontra bsxfun
- 9. È necessario ignorare il certificato quando si utilizza restTemplate
- 10. Come ignorare pitone locale quando si costruisce pitone dalla fonte
- 11. Come testare quando la condizione restituisce numerici (0) in R
- 12. Come configurare Teamcity per ignorare alcuni test
- 13. Come si annulla una condizione in PowerShell?
- 14. Come ignorare gli spazi in github quando si confrontano?
- 15. Ignorare alcune colonne quando si utilizza BULK INSERT
- 16. Come rendere il matcher scalatest per ignorare gli spazi bianchi quando si confrontano due stringhe?
- 17. Ignorare la tabella esistente quando migrazione ./manage.py
- 18. DataTrigger imposta il valore predefinito quando la condizione è falsa
- 19. Condizione anonimo quando la stringa non corrisponde
- 20. log4j.properties Ignorato quando si esegue il test sbt
- 21. Sospendi e verifica fino a quando la condizione è vera
- 22. modo veloce per leggere da StringIO fino a quando non si incontra qualche byte
- 23. Come si modifica a livello di codice la destinazione SRBC ImageButton quando viene soddisfatta una condizione?
- 24. Come ignorare la tastiera in UISearchController quando si cambia focus in tvos?
- 25. "No Join Predicate" quando si aggiunge una condizione aggiuntiva - perché?
- 26. Opzioni JVM in Android quando si esegue il test gradlew
- 27. come ignorare il limite di memoria da 2 GB quando R si avvia
- 28. Come ignorare l'errore mv?
- 29. HttpResponseBase.Headers sono vuoti quando si esegue il test
- 30. PowerMockRunner causa ExceptionInInitializerError quando si esegue il test banale
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