Digamos que tengo una clase de prueba llamada testFixtureA
con varios métodos, testA
testB
, testC
, etc, cada uno con @Test
anotación.jUnit ignorar los métodos de la clase base @test
Digamos ahora que subclases testFixtureA
en la clase llamada testFixtureAB
y no sobrescribo nada. testFixtureAB
está vacío como por ahora.
Cuando ejecuto pruebas de testFixtureAB
, métodos testA
, testB
y testC
son ejecutados por el corredor de prueba debido corredor de prueba no distingue entre los métodos de prueba de clase y clase base.
¿Cómo puedo forzar al corredor de prueba a dejar de lado las pruebas de la clase base?
Esto no es útil por la razón que @martosoler señala en la respuesta a continuación: hay casos obvios (en mi situación, pruebas de Selenio contra diferentes navegadores) donde este es un muy mal consejo. Usted * quiere * el mismo comportamiento a veces; solo la configuración de su (s) variable (s) "SUT" difiere entre subclases. –
@MikeBurton - En realidad, este es un buen consejo, aunque puede no ser obvio lo que sugiere Bozho. Lo que necesita hacer es * refactorizar * su clase base, extrayendo el código que debe reutilizarse en una nueva clase proto-base (abstracta). Su nueva clase de prueba extendería entonces la clase proto-base en lugar de lo que llamábamos la clase base. Este sería un buen ejemplo de cómo seguir el LSP y la regla general de que nunca se deben anular las implementaciones concretas. Si no le importa romper esas reglas, puede ir con mi recomendación a continuación. –
No sé por qué me oponía a esto en julio. Esta es exactamente la solución con la que finalmente llegué. Aunque en este punto se siente como si hubiera una solución de AOP que resolvería mejor mi problema específico. Sin embargo, no soy lo suficientemente ambicioso como para resolverlo en este momento. –