TestNG - anotações básicas

A maneira tradicional de indicar métodos de teste no JUnit 3 é prefixando seus nomes com test. Este é um método muito eficaz para marcar certos métodos em uma classe como tendo um significado especial, mas a nomenclatura não escala muito bem (e se quisermos adicionar mais tags para diferentes estruturas?) E é bastante inflexível (e se nós deseja passar parâmetros adicionais para a estrutura de teste?).

As anotações foram formalmente adicionadas à linguagem Java no JDK 5 e o TestNG optou por usar anotações para anotar as classes de teste.

Aqui está a lista de anotações que TestNG suporta -

Sr. Não. Anotação e descrição
1

@BeforeSuite

O método anotado será executado apenas uma vez antes de todos os testes neste conjunto serem executados.

2

@AfterSuite

O método anotado será executado apenas uma vez após a execução de todos os testes deste conjunto.

3

@BeforeClass

O método anotado será executado apenas uma vez antes que o primeiro método de teste na classe atual seja chamado.

4

@AfterClass

O método anotado será executado apenas uma vez depois que todos os métodos de teste na classe atual forem executados.

5

@BeforeTest

O método anotado será executado antes que qualquer método de teste pertencente às classes dentro da tag <test> seja executado.

6

@AfterTest

O método anotado será executado depois que todos os métodos de teste pertencentes às classes dentro da tag <test> forem executados.

7

@BeforeGroups

A lista de grupos que este método de configuração executará antes. A execução desse método é garantida logo antes que o primeiro método de teste pertencente a qualquer um desses grupos seja chamado.

8

@AfterGroups

A lista de grupos após os quais este método de configuração será executado. É garantido que este método seja executado logo após o último método de teste pertencente a qualquer um desses grupos ser chamado.

9

@BeforeMethod

O método anotado será executado antes de cada método de teste.

10

@AfterMethod

O método anotado será executado após cada método de teste.

11

@DataProvider

Marca um método como fornecedor de dados para um método de teste. O método anotado deve retornar um Object [] [], onde cada Object [] pode ser atribuído à lista de parâmetros do método de teste. O método @Test que deseja receber dados deste DataProvider precisa usar um nome dataProvider igual ao nome desta anotação.

12

@Factory

Marca um método como uma fábrica que retorna objetos que serão usados ​​pelo TestNG como classes de teste. O método deve retornar Object [].

13

@Listeners

Define ouvintes em uma classe de teste.

14

@Parameters

Descreve como passar parâmetros para um método @Test.

15

@Test

Marca uma classe ou método como parte do teste.

Benefícios do uso de anotações

A seguir estão alguns dos benefícios do uso de anotações -

  • TestNG identifica os métodos nos quais está interessado, pesquisando as anotações. Conseqüentemente, os nomes dos métodos não estão restritos a nenhum padrão ou formato.

  • Podemos passar parâmetros adicionais para anotações.

  • As anotações são fortemente tipadas, então o compilador irá sinalizar quaisquer erros imediatamente.

  • As classes de teste não precisam mais estender nada (como TestCase, para JUnit 3).