TestNG, anotación “beforeTestMethod” y anulación
Pregunta
En mis pruebas estoy usando un MyTestBase
clase base que define una setup()
método que hace algunos preparados de base:
public class MyTestBase {
@Configuration( beforeTestMethod=true )
protected void setup() {
// do base preparations
}
}
Ahora tengo algunas clases de prueba más específicos que tienen que ver sus propios preparativos. Hay diferentes maneras de cómo implementar esto.
Me vendría @Override
:
public class MySpecialTestBase extends MyTestBase {
@Override
protected void setup() {
super.setup();
// do additional preparations
}
}
o ... Podría utilizar un método de configuración por separado:
public class MySpecialTestBase extends MyTestBase {
@Configuration( beforeTestMethod=true )
protected void setupSpecial() {
// do additional preparations
}
}
¿Hay una manera preferida para implementar esto?
Solución
Yo preferiría usar la anotación @Configuration
. @Override
y super
son más frágiles. Usted puede olvidarse de llamar super.setup()
, o llamar en su lugar equivocado. Mientras tanto, utilizando el método independiente con @Configuration
le permite elegir denominación más apropiada para el método de instalación del niño si es necesario, y se obtiene el fin instalación garantizada por TestNG (padre entonces niño).
Dos puntos más:
- Me gustaría hacer los padres
final
configuración con el fin de prohibir primordial accidental. - que haría uso de anotaciones
@BeforeMethod
. Están disponibles desde TestNG 5.0. Por supuesto, para las versiones anteriores se ven obligados a utilizar@Configuration
.