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