我正在尝试使用 Junit 测试类的默认构造函数:
// testing default const
public void testCaesarCipher() {
CaesarCipher c1 = new CaesarCipher();
if (c1 == null) {
assertTrue(false);
} else {
assertTrue(true);
}
}
Run Code Online (Sandbox Code Playgroud)
我收到“死代码”的错误,我该如何解决?
摆脱对c1null的检查——这被证明是不可能的。构造函数永远不能返回null。
您可能想要测试您的构造函数是否不会引发异常 - 在这种情况下只需:
public void testCaesarCipher() {
new CaesarCipher();
}
Run Code Online (Sandbox Code Playgroud)
……还好。构造函数返回而不抛出异常的事实就是测试将在执行时证明的全部内容。(当然,测试的存在是编译时检查是否存在无参数构造函数。)
我希望您的其他测试无论如何都需要调用构造函数,在这种情况下,您真的认为值得进行此测试吗?
此外,如果你真的没有要检查一些值不为空,你应该使用:
assertNotNull(c1);
Run Code Online (Sandbox Code Playgroud)
这比你的if/清楚得多else。如果您想以编程方式失败,只需调用fail()而不是assertTrue(false);.