Recientemente se ha agregado un nuevo concepto de Theories a JUnit (desde v4.4).¿Por qué JUnit ejecuta casos de prueba para teoría solo hasta la primera falla?
En pocas palabras, usted puede marcar su método de prueba con @Theory
anotación (en lugar de @Test
), que su método de prueba parametrizada y declarar una matriz de parámetros, marcado con @DataPoints
anotación en algún lugar de la misma clase.
JUnit se ejecutará secuencialmente sus parámetros de paso del método de prueba parametrizados recuperados de @DataPoints
uno tras otro. Pero solo hasta que falle la primera invocación (por cualquier motivo).
El concepto parece ser muy similar al @DataProviders
de TestNG, pero cuando utilizamos proveedores de datos, todos los escenarios se ejecutan a pesar de los resultados de ejecución. Y es útil porque puede ver cuántos trabajos/no funcionan y puede arreglar su programa de manera más efectiva.
Entonces, me pregunto cuál es la razón para no ejecutar @Theory
-metodo marcado para cada @DataPoint
? (Al parecer, no es tan difícil de heredar de corredor Teorías y hacer un corredor costumbre que no hará caso de fallas, pero ¿por qué no tenemos tal comportamiento fuera de la caja?)
UPD: He creado una tolerancia a fallos versión del corredor Teorías y lo puso a disposición para un acceso público: https://github.com/rgorodischer/fault-tolerant-theories
con el fin de compararla con las teorías estándar corredor corrida StandardTheoriesBehaviorDemo continuación FaultTolerantTheoriesBehaviorDemo que se sometan a src/test/...
carpeta.
vea el upd (pensé que podría encontrarlo interesante). – Roman