jUnit中的ExpectedException?

时间:2009-06-27 11:35:17

标签: junit nunit assertions expected-exception

是否存在等效于NUnit的ExpectedException或Assert.Throws<>在jUnit?

3 个答案:

答案 0 :(得分:11)

您也可以考虑查看ExpectedException类,它提供更丰富的异常匹配。

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

您不仅可以匹配异常类,还可​​以将自定义匹配器应用于其消息。

答案 1 :(得分: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) {}
}

答案 2 :(得分:2)

如果您使用Groovy进行junit测试,可以使用shouldFail

以下是使用junit3样式的示例:

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