TestNG - podstawowe adnotacje
Tradycyjnym sposobem wskazywania metod testowych w JUnit 3 jest poprzedzanie ich nazw przedrostkiem test. Jest to bardzo skuteczna metoda oznaczania pewnych metod w klasie jako mających specjalne znaczenie, ale nazewnictwo nie jest dobrze skalowane (a co jeśli chcemy dodać więcej tagów dla różnych frameworków?) I jest raczej nieelastyczne (co jeśli chcesz przekazać dodatkowe parametry do platformy testowej?).
Adnotacje zostały formalnie dodane do języka Java w JDK 5, a TestNG zdecydował się na użycie adnotacji do adnotacji klas testowych.
Oto lista adnotacji obsługiwanych przez TestNG -
Sr.No. | Adnotacja i opis |
---|---|
1 | @BeforeSuite Metoda z adnotacjami zostanie uruchomiona tylko raz przed wykonaniem wszystkich testów w tym pakiecie. |
2 | @AfterSuite Metoda z adnotacjami zostanie uruchomiona tylko raz po wykonaniu wszystkich testów w tym pakiecie. |
3 | @BeforeClass Metoda z adnotacjami zostanie uruchomiona tylko raz przed wywołaniem pierwszej metody testowej w bieżącej klasie. |
4 | @AfterClass Metoda z adnotacjami zostanie uruchomiona tylko raz po uruchomieniu wszystkich metod testowych w bieżącej klasie. |
5 | @BeforeTest Metoda z adnotacjami zostanie uruchomiona przed uruchomieniem jakiejkolwiek metody testowej należącej do klas wewnątrz tagu <test>. |
6 | @AfterTest Metoda z adnotacjami zostanie uruchomiona po uruchomieniu wszystkich metod testowych należących do klas wewnątrz tagu <test>. |
7 | @BeforeGroups Lista grup, dla których ta metoda konfiguracji będzie działać wcześniej. Ta metoda jest gwarantowana na krótko przed wywołaniem pierwszej metody testowej należącej do którejkolwiek z tych grup. |
8 | @AfterGroups Lista grup, po których będzie działać ta metoda konfiguracji. Ta metoda zostanie uruchomiona wkrótce po wywołaniu ostatniej metody testowej należącej do którejkolwiek z tych grup. |
9 | @BeforeMethod Opisana metoda zostanie uruchomiona przed każdą metodą testową. |
10 | @AfterMethod Opisana metoda zostanie uruchomiona po każdej metodzie testowej. |
11 | @DataProvider Oznacza metodę jako dostarczającą dane dla metody testowej. Metoda z adnotacjami musi zwracać Object [] [], gdzie każdemu Object [] można przypisać listę parametrów metody testowej. Metoda @Test, która chce odbierać dane od tego dostawcy danych, musi używać nazwy dostawcy danych równej nazwie tej adnotacji. |
12 | @Factory
Oznacza metodę jako fabrykę, która zwraca obiekty, które będą używane przez TestNG jako klasy Test. Metoda musi zwracać Object []. |
13 | @Listeners Definiuje słuchaczy w klasie testowej. |
14 | @Parameters Opisuje sposób przekazywania parametrów do metody @Test. |
15 | @Test Oznacza klasę lub metodę jako część testu. |
Korzyści z używania adnotacji
Oto niektóre zalety korzystania z adnotacji -
TestNG identyfikuje metody, którymi jest zainteresowany, wyszukując adnotacje. Dlatego nazwy metod nie są ograniczone do żadnego wzorca lub formatu.
Do adnotacji możemy przekazać dodatkowe parametry.
Adnotacje są silnie wpisane, więc kompilator od razu oznaczy wszelkie błędy.
Klasy testowe nie muszą już niczego rozszerzać (na przykład TestCase, dla JUnit 3).