¿Cuál es el uso real de 'fail' en el caso de prueba JUnit?
java
unit-testing
junit
junit4
Sanju
fuente
fuente
digamos que está escribiendo un caso de prueba para un flujo -ve donde el código que se está probando debería generar una excepción
fuente
Creo que el caso de uso habitual es llamarlo cuando no se arrojó ninguna excepción en una prueba negativa.
Algo parecido al siguiente pseudocódigo:
fuente
Lo he usado en el caso de que algo haya salido mal en mi método @Before.
fuente
@Before
método tuvo éxito, probablemente sea mejor verificarlo directamente en ese método. Como beneficio adicional, al menos JUnit y TestNG incluso informarán una falla diferente para los errores de los métodos@Before
/@After
, por lo que pueden ver que el problema no estaba en la prueba en sí.Así es como utilizo el método Fail.
Hay tres estados en los que puede terminar su caso de prueba
previsto (a diferencia de los casos de prueba negativos que esperan que ocurra una excepción).
Si está utilizando eclipse, los tres estados se indican con un marcador verde, azul y rojo, respectivamente.
Utilizo la operación de error para el tercer escenario.
por ejemplo: public Integer add (integer a, Integer b) {return new Integer (a.intValue () + b.intValue ())}
fuente
fail()
.Yo, por ejemplo, uso
fail()
para indicar pruebas que aún no están terminadas (sucede); de lo contrario, se mostrarían exitosos.Esto quizás se deba al hecho de que no conozco algún tipo de funcionalidad incompleta (), que existe en NUnit.
fuente
En configuraciones concurrentes y / o asincrónicas, es posible que desee verificar que ciertos métodos (por ejemplo, delegados, detectores de eventos, manejadores de respuestas, lo que sea) no se llaman. Dejando a un lado los frameworks de burla, puedes llamar
fail()
a esos métodos para fallar las pruebas. Los tiempos de espera vencidos son otra condición de falla natural en tales escenarios.Por ejemplo:
fuente
El caso de uso más importante es probablemente la comprobación de excepciones.
Si bien junit4 incluye el elemento esperado para verificar si ocurrió una excepción, parece que no forma parte del nuevo junit5. Otra ventaja de usar
fail()
sobre elexpected
es que puede combinarlofinally
permitiendo la limpieza de casos de prueba.Como se señaló en otro comentario. Tener una prueba para fallar hasta que pueda terminar de implementarla también suena razonable.
fuente