Desmontaje diferente para cada @Test en jUnit

Resuelto Daniel asked hace 13 años • 3 respuestas

¿Hay alguna forma de definir un desmontaje diferente para cada @Test en jUnit?

Daniel avatar Jul 26 '11 19:07 Daniel
Aceptado

Utilice la @Afteranotación para indicar los métodos que se ejecutarán después de cada @Test.

El conjunto completo de anotaciones como esta son:

  • @BeforeClass- antes de que todos @Testsse ejecuten
  • @Before- antes @Testde ejecutar cada uno
  • @After- después @Testde ejecutar cada uno
  • @AfterClass- después de que todo @Testsesté ejecutado

Me acabo de dar cuenta de que tal vez no haya entendido la pregunta. Si pregunta cómo asociar un método de desmontaje en particular a un método @Test en particular, no hay necesidad de anotaciones: simplemente llámelo al final de su método de prueba en un finalmente:

@Test
public void someTest() {
    try {
        // test something
    } finally {
        someParticularTearDown();
    }
}
Bohemian avatar Jul 26 '2011 13:07 Bohemian

El objetivo de agrupar métodos de prueba en la misma clase es que puedan compartir cosas, lo que incluye tener la misma configuración y desmontaje. Entonces, sí, puede definir desmontajes separados para cada prueba, pero lo hace colocando los métodos @Test en clases diferentes.

Una vez que comienza a tener métodos de desmontaje separados, la razón por la que desea agrupar las pruebas en la misma clase no es evidente. Por lo tanto, podrías manejar esta situación siendo flexible en cuanto a cómo agrupas tus pruebas en clases.

Nathan Hughes avatar Jul 26 '2011 13:07 Nathan Hughes