JUnit 测试 — 分析预期的异常
在JUnit中,我目前正在使用注释来预期测试中会出现异常。
有没有办法分析这个例外?例如,我期望一个,但我也想验证方法的内容。CriticalServerException
getMessage
在JUnit中,我目前正在使用注释来预期测试中会出现异常。
有没有办法分析这个例外?例如,我期望一个,但我也想验证方法的内容。CriticalServerException
getMessage
如果您使用的是 JUnit 4.7 或更高版本,请尝试 ExpectedException
这个问题中有一个示例,下面复制:
@Rule
public ExpectedException exception = ExpectedException.none();
@Test
public void testRodneCisloRok(){
exception.expect(IllegalArgumentException.class);
exception.expectMessage("error1");
new RodneCislo("891415",dopocitej("891415"));
}
我不确定你是否应该这样做。使用 try-catch 块来检查错误消息是如此的 junit3ish。我们现在有这个很酷的功能,你可以写,你想“返回”并再次使用try-catch来获取你期望的异常,只是为了检查错误消息?@Test(expected=CriticalServerException.class)
IMO 您应该保留注释并忽略错误消息。检查错误消息,可以更改很多,因为它是一个更“人类可读”的字符串,而不是技术值,也可能很棘手。您正在强制异常具有特定的错误消息,但您可能不知道谁生成了异常以及他选择了什么错误消息。@Test(expected=CriticalServerException.class)
通常,您希望测试该方法是否引发异常,而不是实际的错误消息的外观。如果错误消息真的如此重要,则也许应该考虑使用它引发的异常的子类并将其签入。@Test(expected=...)