¿Como probar que un método lanza una excepción ante una determinada situación excepcional? Usando NUnit o JUnit 4, basta con escribir el método de prueba y poner una simple anotación indicando el tipo de excepción esperada.
@Test(expected = ExceptionEsperada.class)
public void xxxxxx(){
// ejecutamos la código que debiera lanzar la excepción
}
Pero no todos los xUnit brindan esta posibilidad, entonces debemos apelar a una estrategia similar a la siguiente.
public void test_xxxxxx(){
try{
// ejecutamos la código que debiera lanzar la excepción
fail(); // si ejecución llega hasta esta línea, entonces significa que no se lanzó la excepción esperada y por ende la prueba ha fallado
}
catch(ExceptionEsperada ex){
/* si estamos aqui, entonces se ha producido la excepción esperada y no es necesario
hacer nada pues a menos que se indique que algo ha ido mail, se asume todo estuvo
bien */
}
catch(Exception ex){
// si estamos aqui, es que la excepción que se ha lanzado, no es la esperada, por lo tanto la prueba ha fallado
fail();
}
}
Asi de simple, espero les resulte útil.
gracias !!