Pregunta

Tengo dos clases que estoy probando (llamémosles Clase A ni ClassB). Cada una tiene su propia clase de prueba JUnit (testClassA y testClassB respectivamente).

claseA se basa en ClassB para su funcionamiento normal, por lo que desea asegurarse de ClassB pasa sus pruebas antes de ejecutar testClassA (de lo contrario los resultados de testClassA no tendría sentido).

¿Cuál es la mejor manera de hacer esto? En este caso se trata de una asignación por lo que necesito para mantener a las dos clases de prueba especificado si es posible.

CAN / debería lanzar una excepción de testClassA si las pruebas de testClassB no son todos pasaron? Esto requeriría testClassB para funcionar de manera invisible y simplemente informar de su éxito / fracaso en testClassA, en lugar de a la interfaz gráfica de usuario (a través de JUnit).

Estoy usando Eclipse y JUnit 4.8.1

Actualización: Hasta ahora el mejor que he conseguido es un archivo separado con un conjunto de pruebas como se muestra a continuación. Esto sigue siendo no del todo lo que busco, ya que todavía permite que pone a prueba ClassB para ser ejecutado si falla claseA algunas pruebas.

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({testClassA.class, testClassBCode.class})
public class testClassB {
}
¿Fue útil?

Solución

Sus pruebas unitarias no deben depender de otras pruebas.

Una solución para su problema sería burlarse ClassB en las pruebas de sus ClassA, con el fin de probar su comportamiento independientemente de los resultados de las pruebas de ClassB.

Yo recomiendo que te dan Mockito una oportunidad!

Otros consejos

Usted debe tratar TestNG marco que permita que este tipo de pruebas dependencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top