java - tutorial - prueba unitaria con junit
JUnit: @ ¿Antes solo para algunos métodos de prueba? (4)
Tengo un código de configuración común que he factorizado en un método marcado con @Before
. Sin embargo, no es necesario que todo este código se ejecute para cada prueba. ¿Hay alguna forma de marcarlo para que el método @Before
solo se ejecute antes de ciertas pruebas?
Es posible lograrlo también a través de Assume desde JUnit. Y luego puede verificar el nombre del método para el que desea procesar @Before
.
public class MyTest {
@Rule
public TestName testName = new TestName();
@Before
public void setUp() {
assumeTrue(testName.getMethodName().equals("myMethodName"));
// setup follows
}
}
Consulte el topic para obtener más información sobre @Rule
.
No estoy seguro acerca de @Antes, pero recientemente se me ocurrió una estrategia para que el bloque @After se ejecute de forma selectiva. La implementación fue sencilla. Tengo algunos indicadores configurados en valores predeterminados como parte de la clase de prueba. Se restablecen a los valores predeterminados en la clase @Before. En la clase que necesito hacer cosas específicas de una marca, establezco esas banderas y en @Después de verificar los valores de las banderas para hacer los trabajos respectivos.
O utilice TestNG . Te da un control más preciso sobre las pruebas.
Simplemente mueva las pruebas que no necesitan el código de configuración a una clase de prueba separada. Si tiene algún otro código común a las pruebas que sería útil mantener, muévalo a una clase auxiliar.