Escribí una interfaz MyInterface
, que será implementada por diferentes implementadores.Clase de prueba genérica de JUnit
También escribí una clase MyInterfaceTest
, que contiene métodos de prueba genéricos que todos los implementadores deberían poder usar para probar sus implementaciones.
Simplemente no sé cómo hacer que funcione como una prueba JUnit.
Actualmente, tengo algo como esto:
public class MyInterfaceTest {
private static MyInterface theImplementationToTest = null;
@BeforeClass public static void setUpBeforeClass() throws Exception {
// put your implementation here:
theImplementationToTest = new Implementation(...);
}
@AfterClass public static void tearDownAfterClass() throws Exception {
theImplementationToTest = null;
}
@Test public void test1() { /* uses theImplementationToTest */ }
@Test public void test2() { /* uses theImplementationToTest */ }
}
uso el método estático setUpBeforeClass
debido a que la inicialización de cada aplicación requiere mucho tiempo, por lo que quiero para inicializar una vez para todas las pruebas.
Con esta versión de la prueba, los implementadores tienen que cambiar el código de setUpBeforeClass
y poner su propia implementación.
Estoy seguro de que hay otra forma de escribir MyInterfaceTest
, por lo que los implementadores solo tendrán que heredarlo o enviarle un parámetro, y no cambiar el código. Sin embargo, no tengo suficiente experiencia en JUnit para que funcione. ¿Puedes mostrarme cómo hacer esto?
¿Cómo ayuda eso a resolver el problema original? –
¿Cuál es el problema original? –
Cómo reutilizar una instalación/desmontaje estático con implementación que varía según la subclase. Como se describe en mi respuesta. –