Mira un informe de JUnit. JUnit ya está organizado por paquete. Cada paquete tiene (o puede tener) clases TestSuite, cada una de las cuales ejecuta múltiples TestCases. Cada TestCase puede tener múltiples métodos de prueba del formulario public void test*()
, cada uno de los cuales se convertirá en una instancia de la clase TestCase a la que pertenecen. Cada método de prueba (instancia de TestCase) tiene un nombre y un criterio de aprobación / falla.
Lo que mi administración requiere es el concepto de elementos individuales de TestStep , cada uno de los cuales informa sus propios criterios de aprobación / reprobación . El fracaso de cualquier paso de prueba no debe impedir la ejecución de los pasos de prueba posteriores.
En el pasado, los desarrolladores de pruebas en mi posición organizaron las clases TestCase en paquetes que corresponden a la (s) parte (s) del producto bajo prueba, crearon una clase TestCase para cada prueba e hicieron de cada método de prueba un "paso" separado en la prueba, completo con sus propios criterios de pasa / falla en la salida JUnit. Cada TestCase es una "prueba" independiente, pero los métodos individuales, o "pasos" de prueba dentro de la TestCase, deben ocurrir en un orden específico.
Los métodos de TestCase fueron los pasos de TestCase, y los diseñadores de prueba obtuvieron un criterio de aprobación / falla por paso de prueba. Ahora los pasos de la prueba están mezclados y las pruebas (por supuesto) fallan.
Por ejemplo:
Class testStateChanges extends TestCase
public void testCreateObjectPlacesTheObjectInStateA()
public void testTransitionToStateBAndValidateStateB()
public void testTransitionToStateCAndValidateStateC()
public void testTryToDeleteObjectinStateCAndValidateObjectStillExists()
public void testTransitionToStateAAndValidateStateA()
public void testDeleteObjectInStateAAndObjectDoesNotExist()
public void cleanupIfAnythingWentWrong()
Cada método de prueba afirma e informa sus propios criterios de aprobación / falla por separado. Al colapsar esto en "un gran método de prueba" por el simple hecho de ordenar, se pierde la granularidad de criterios de aprobación / reprobación de cada "paso" en el informe resumido de JUnit. ... y eso molesta a mis gerentes. Actualmente están exigiendo otra alternativa.
¿Alguien puede explicar cómo un JUnit con pedidos de métodos de prueba codificados admitiría criterios de aprobación / falla separados de cada paso de prueba secuencial, como se ejemplificó anteriormente y es requerido por mi administración?
Independientemente de la documentación, veo esto como una seria regresión en el marco de JUnit que dificulta la vida de muchos desarrolladores de pruebas.