2009-06-27 20 views

Respuesta

7

junit4:

@Test(expected = org.dom4j.DocumentException.class) 
void shouldThrowException() { 
    getFile(null); 
} 

junit3:

void testShouldThrowException() { 
    try { 
     getFile(null); 
     fail("Expected Exception DocumentException"); 
    } catch(DocumentException e) {} 
} 
+1

sólo está disponible en junit4 – jitter

+0

he actualizado esta respuesta para incluir una manera de hacer esto en jUnit3 – j4y

+0

Lo bueno del enfoque "JUnit3" es que se puede escribir una excepción-caso de prueba por línea, mientras que necesita cinco líneas para cada una con el enfoque "JUnit4". Ver mi respuesta para más información: http://stackoverflow.com/a/15385613/974531 –

11

También puede considerar echar un vistazo a la clase más rica que proporciona ExpectedException juego excepción.

https://github.com/junit-team/junit/wiki/Exception-testing

No sólo puede coincidir con la clase de excepción, pero también se puede aplicar comparadores personalizados a su mensaje.

2

Si está utilizando Groovy para sus pruebas junit puede usar shouldFail.

Aquí hay un ejemplo usando el estilo junit3:

void testShouldThrowException() { 
    def message = shouldFail(DocumentException) { 
     documentService.getFile(null) 
    } 
    assert message == 'Document could not be saved because it ate the homework.' 
}