我刚刚将 EclEmma 安装到我的 Eclipse 设置中,并针对测试套件运行它,以查看其目标方法的代码覆盖率。
我发现抛出新的 NullPointerException 的任何行都没有被覆盖,尽管在测试中断言调用该方法时将抛出该异常。我发现这些测试通过了!
示例如下:
public static boolean isXMLFile(File f) {
if(f==null) {
throw new NullPointerException("isXMLFile: Input File must not be null");
}
}
我发现当我在 jUnit 测试中使用 isXMLFile(null)
调用上述代码时,我得到了我想要的 NPE,但我不认为它来 self 认为的地方是的!
我错过了一些关于运行时异常的非常基本的东西,不是吗?
最佳答案
如果您转储异常的堆栈跟踪,您将确切地看到它来自哪里。
也就是说——您可能不想抛出空指针异常,您可能想抛出非法参数异常。
关于java - 测试中未抛出 NullPointerExceptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4135552/