JUnit 中的失败和错误有什么区别?
我在大型代码库上运行JUnit测试,并且我意识到有时我会收到“错误”,而其他时候我会得到“失败”。有什么区别?
我在大型代码库上运行JUnit测试,并且我意识到有时我会收到“错误”,而其他时候我会得到“失败”。有什么区别?
失败是 - 即你的断言是不正确的。when your test cases fail
错误是 - 即在尝试实际运行测试时,会抛出意外的异常,例如FileNotFound等。when unexpected errors/exceptions occur
如果您的测试引发的异常没有通过 Junit 中的 Assertion 框架冒泡,则会将其报告为错误。例如,NullPointer 或 ClassNotFound 异常将报告错误:
String s = null;
s.trim();
或
try {
// your code
} catch(Exception e) {
// log the exception
throw new MyException(e);
}
话虽如此,以下内容将报告失败:
Assert.fail("Failure here");
或
Assert.assertEquals(1, 2);
甚至:
throw new AssertionException(e);
这取决于您使用的 Junit 版本。Junit 4-将区分故障和错误,但 Junit 4 仅将其简化为故障。
以下链接提供了更多有趣的输入: