¿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 !!