Múltiples pruebas de Junit usando fest
Pregunta
He escrito varios métodos de prueba Junit para probar mi GUI Java Swing (usando Festival). Mi clase está en el siguiente formato:
public class Tests
{
@BeforeClass
public static void beforeClass() throws Exception { ... }
@Before
public void before() throws Exception { ... }
@After
public void after() throws Exception { ... }
@AfterClass
public static void afterClass() throws Exception { ... }
@Test
public void testA() { ... }
@Test
public void testB() { ... }
@Test
public void testC() { ... }
}
Cuando ejecuto esta clase en Eclipse, solo ejecuta la prueba de testa, y no TestB o TestC. Si comento Testa, TestB se ejecuta, por lo que parece ejecutar la primera prueba cada vez.
Junit en Eclipse muestra 'Runs: 2/3' después de que haya completado la primera prueba, pero no progresa más ni muestra ningún error.
¿Hay algo que esté haciendo mal? Estoy usando Junit 4.8.1 y Fest 1.2.
Solución
Sospecho que tienes un efecto secundario en testA
que está bloqueando el código en testB
de correr. Es difícil decir qué está sucediendo sin los detalles en testA
y testB
, pero puedo darte una guía general.
Te has vuelto bien comentando testA
. Cuando hagas esto, haz ambos testB
y testC
¿correr?
Intenta profundizar en testA
y comentando lentamente los detalles en lo que hay debajo testA
Hasta que las pruebas ejecuten ambos testA
y testB
. Una vez que hayas hecho esto, al menos lo sabes dónde el problema es.
Por ejemplo, si su código se parece:
public void testA() {
doX();
doY();
doZ();
// Assert stuff
...
}
Comenta todo después doX()
y mira lo que pasa. Si eso funciona, entonces descomnación doY()
y mira lo que pasa. Si no funcionó, luego profundice en doX()
Y comience a comentar y volver a ejecutar sus pruebas nuevamente.
Esto debería ayudarlo a identificar los detalles de dónde van las cosas mal. Si todavía está perplejo cuando se resuelve esto, regrese y haga una pregunta sobre esos detalles.
¡Buena suerte encontrando tu error!
Otros consejos
Parece que su fragmento de código está bien.
Puede verificar si cada método @test es independiente Para otros, cada método de prueba no debería compartir el mismo contexto. Asegurar @Before
y @After
tener comportamientos correctos.