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).