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?

¿Fue útil?

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:

  1. Me gustaría hacer los padres final configuración con el fin de prohibir primordial accidental.
  2. 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.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top