Ho un codice di impostazione comune che ho preso in considerazione per un metodo contrassegnato con @Before
. Tuttavia, non è necessario che tutto questo codice venga eseguito per ogni singolo test. C'è un modo per contrassegnarlo in modo che il metodo @Before
venga eseguito solo prima di determinati test?JUnit: @Prima solo per alcuni metodi di prova?
risposta
Basta spostare i test che non richiedono il codice di installazione in una classe di test separata. Se hai qualche altro codice comune ai test che sarebbe utile tenere, spostalo in una classe helper.
Oppure utilizzare TestNG. Ti dà un controllo più dettagliato sui test.
È possibile ottenere anche tramite Assume da JUnit. E quindi è possibile controllare il nome del metodo per il quale si desidera elaborare @Before
.
public class MyTest {
@Rule
public TestName testName = new TestName();
@Before
public void setUp() {
assumeTrue(testName.getMethodName().equals("myMethodName"));
// setup follows
}
}
Controllare il topic per ulteriori delucidazioni su @Rule
.
Non utilizzare Supponiamo, si ferma l'esecuzione dell'intero test, non solo del metodo @Before. if (! testName.getMethodName(). equals ("myMethodName")) {return;} (scusa la spaziatura) funzionerebbe meglio. – jMcK
Sinceramente l'idea di "se-test-nome-uguale" non ha senso, come si potrebbe anche chiamare la funzione prima e dopo direttamente nei test che ne hanno bisogno e eliminare le annotazioni Prima e Dopo. – aliteralmind
Non sono sicuro di @Before, ma di recente ho elaborato una strategia per il blocco @After in modo selettivo. L'implementazione era semplice. Ho alcuni flag impostati su valori predefiniti come parte della classe di test. Vengono ripristinati ai valori predefiniti nella classe @Before. Nella classe ho bisogno di fare cose specifiche per una bandiera, ho impostato quei flag & in @Dopo aver controllato i valori dei flag per fare i rispettivi lavori.
- 1. metodi di prova JUNIT void
- 2. Utilizzando moq per deridere solo alcuni metodi
- 3. Come eseguire i metodi di prova in ordine con Junit
- 4. Prova di drools con junit
- 5. JUnit Metodo di prova con carattere casuale
- 6. JUnit: test della classe helper con solo metodi statici
- 7. Rapporti JUnit - Descrizione del metodo di prova
- 8. come eseguire i metodi di test di prova di junit in ordine
- 9. Junit4: esecuzione di una suite di metodi di prova particolari
- 10. Errore di runtime quando JUnit prova
- 11. Escludere alcuni test JUnit dalla suite di test automatizzata
- 12. Ignorando AspectJ durante JUnit mette alla prova
- 13. JUnit Metodo di prova che utilizza altri metodi nello stesso oggetto
- 14. Prefisso per metodi di prova in Unità: "test" vs "dovrebbe"
- 15. Assistente di prova solo per matematica
- 16. System.out.print() non mostra nulla nei metodi di prova
- 17. Come prevenire l'ereditarietà per alcuni metodi?
- 18. immediata JUnit registrazione di prova con <junit> Ant Task
- 19. PowerMock: beffardo di metodi statici (+ restituire i valori originali in alcuni metodi particolari)
- 20. Unit Testing - attuazione uguali solo per facilitare la prova
- 21. L'app per iPhone in prova si interrompe dopo alcuni giorni
- 22. Perché JUnit non fornisce i metodi assertNotEquals?
- 23. JUnit + Derby + Primavera: calo db in memoria dopo ogni prova
- 24. Utilizzare Ant per eseguire solo test JUnit specifici
- 25. Impostazione dell'ora e della data nel dispositivo di prova JUnit
- 26. Test dell'unità Alcuni metodi di servizio Web
- 27. jUnit ignorare i metodi @Test dalla classe base
- 28. Comando Bash per spostare solo alcuni file?
- 29. Junit Best Practice: metodo pubblico che chiama più metodi privati
- 30. Connessione rifiutata con il caso di prova junit assente
+1 in altre parole, non utilizzare @Prima se non si desidera il comportamento di @Before :) –
reale utile @Kirschstein :(- "fare bene in primo luogo" –