TestNG - Anotaciones básicas
La forma tradicional de indicar métodos de prueba en JUnit 3 es prefijar sus nombres con test. Este es un método muy efectivo para etiquetar ciertos métodos en una clase por tener un significado especial, pero la nomenclatura no se escala muy bien (¿y si queremos agregar más etiquetas para diferentes marcos?) Y es bastante inflexible (¿qué pasa si ¿Quiere pasar parámetros adicionales al marco de prueba?).
Las anotaciones se agregaron formalmente al lenguaje Java en JDK 5, y TestNG tomó la decisión de usar anotaciones para anotar clases de prueba.
Aquí está la lista de anotaciones que admite TestNG:
No Señor. | Anotación y descripción |
---|---|
1 | @BeforeSuite El método anotado se ejecutará solo una vez antes de que se hayan ejecutado todas las pruebas de esta suite. |
2 | @AfterSuite El método anotado se ejecutará solo una vez después de que se hayan ejecutado todas las pruebas de esta suite. |
3 | @BeforeClass El método anotado se ejecutará solo una vez antes de que se invoque el primer método de prueba de la clase actual. |
4 | @AfterClass El método anotado se ejecutará solo una vez después de que se hayan ejecutado todos los métodos de prueba de la clase actual. |
5 | @BeforeTest El método anotado se ejecutará antes de que se ejecute cualquier método de prueba que pertenezca a las clases dentro de la etiqueta <test>. |
6 | @AfterTest El método anotado se ejecutará después de que se hayan ejecutado todos los métodos de prueba que pertenecen a las clases dentro de la etiqueta <test>. |
7 | @BeforeGroups La lista de grupos que este método de configuración ejecutará antes. Se garantiza que este método se ejecutará poco antes de que se invoque el primer método de prueba que pertenece a cualquiera de estos grupos. |
8 | @AfterGroups La lista de grupos tras los que se ejecutará este método de configuración. Se garantiza que este método se ejecutará poco después de que se invoque el último método de prueba que pertenezca a cualquiera de estos grupos. |
9 | @BeforeMethod El método anotado se ejecutará antes de cada método de prueba. |
10 | @AfterMethod El método anotado se ejecutará después de cada método de prueba. |
11 | @DataProvider Marca un método como fuente de datos para un método de prueba. El método anotado debe devolver un Objeto [] [], donde a cada Objeto [] se le puede asignar la lista de parámetros del método de prueba. El método @Test que desea recibir datos de este DataProvider necesita usar un nombre de DataProvider igual al nombre de esta anotación. |
12 | @Factory
Marca un método como una fábrica que devuelve objetos que serán utilizados por TestNG como clases de prueba. El método debe devolver Object []. |
13 | @Listeners Define oyentes en una clase de prueba. |
14 | @Parameters Describe cómo pasar parámetros a un método @Test. |
15 | @Test Marca una clase o un método como parte de la prueba. |
Beneficios de usar anotaciones
A continuación, se muestran algunos de los beneficios de usar anotaciones:
TestNG identifica los métodos que le interesan mediante la búsqueda de anotaciones. Por lo tanto, los nombres de los métodos no están restringidos a ningún patrón o formato.
Podemos pasar parámetros adicionales a las anotaciones.
Las anotaciones están fuertemente tipadas, por lo que el compilador marcará cualquier error de inmediato.
Las clases de prueba ya no necesitan extender nada (como TestCase, para JUnit 3).