TestNG - Annotazioni di base
Il modo tradizionale per indicare i metodi di test in JUnit 3 è anteporre ai loro nomi il prefisso test. Questo è un metodo molto efficace per contrassegnare determinati metodi in una classe come aventi un significato speciale, ma la denominazione non scala molto bene (cosa succede se vogliamo aggiungere più tag per diversi framework?) Ed è piuttosto inflessibile (cosa succede se vuoi passare parametri aggiuntivi al framework di test?).
Le annotazioni sono state aggiunte formalmente al linguaggio Java in JDK 5 e TestNG ha scelto di utilizzare le annotazioni per annotare le classi di test.
Ecco l'elenco delle annotazioni supportate da TestNG:
Sr.No. | Annotazione e descrizione |
---|---|
1 | @BeforeSuite Il metodo annotato verrà eseguito solo una volta prima che tutti i test in questa suite siano stati eseguiti. |
2 | @AfterSuite Il metodo annotato verrà eseguito solo una volta dopo che tutti i test in questa suite saranno stati eseguiti. |
3 | @BeforeClass Il metodo annotato verrà eseguito solo una volta prima che venga richiamato il primo metodo di test nella classe corrente. |
4 | @AfterClass Il metodo annotato verrà eseguito solo una volta dopo che tutti i metodi di test nella classe corrente saranno stati eseguiti. |
5 | @BeforeTest Il metodo annotato verrà eseguito prima di eseguire qualsiasi metodo di test appartenente alle classi all'interno del tag <test>. |
6 | @AfterTest Il metodo annotato verrà eseguito dopo che tutti i metodi di test appartenenti alle classi all'interno del tag <test> sono stati eseguiti. |
7 | @BeforeGroups L'elenco dei gruppi che questo metodo di configurazione eseguirà prima. È garantito che questo metodo venga eseguito poco prima che venga richiamato il primo metodo di prova che appartiene a uno di questi gruppi. |
8 | @AfterGroups L'elenco dei gruppi in base ai quali verrà eseguito questo metodo di configurazione. È garantito che questo metodo venga eseguito subito dopo che è stato richiamato l'ultimo metodo di test che appartiene a uno di questi gruppi. |
9 | @BeforeMethod Il metodo annotato verrà eseguito prima di ogni metodo di prova. |
10 | @AfterMethod Il metodo annotato verrà eseguito dopo ogni metodo di prova. |
11 | @DataProvider Contrassegna un metodo come fornitura di dati per un metodo di prova. Il metodo annotato deve restituire un Object [] [], dove a ciascun Object [] può essere assegnato l'elenco dei parametri del metodo di test. Il metodo @Test che desidera ricevere dati da questo DataProvider deve utilizzare un nome dataProvider uguale al nome di questa annotazione. |
12 | @Factory
Contrassegna un metodo come factory che restituisce oggetti che verranno utilizzati da TestNG come classi Test. Il metodo deve restituire Object []. |
13 | @Listeners Definisce i listener in una classe di test. |
14 | @Parameters Descrive come passare i parametri a un metodo @Test. |
15 | @Test Contrassegna una classe o un metodo come parte del test. |
Vantaggi dell'utilizzo delle annotazioni
Di seguito sono riportati alcuni dei vantaggi dell'utilizzo delle annotazioni:
TestNG identifica i metodi a cui è interessato, cercando le annotazioni. Quindi, i nomi dei metodi non sono limitati a nessun modello o formato.
Possiamo passare parametri aggiuntivi alle annotazioni.
Le annotazioni sono fortemente tipizzate, quindi il compilatore segnalerà immediatamente eventuali errori.
Le classi di test non devono più estendere nulla (come TestCase, per JUnit 3).