Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Junit:测试默认构造函数,死代码警告?_Java_Junit - Fatal编程技术网

Java Junit:测试默认构造函数,死代码警告?

Java Junit:测试默认构造函数,死代码警告?,java,junit,Java,Junit,我正在尝试使用Junit测试类的默认构造函数: // testing default const public void testCaesarCipher() { CaesarCipher c1 = new CaesarCipher(); if (c1 == null) { assertTrue(false); } else { assertTrue(true); }

我正在尝试使用Junit测试类的默认构造函数:

// testing default const
    public void testCaesarCipher() {
        CaesarCipher c1 = new CaesarCipher();
        if (c1 == null) {

            assertTrue(false);

        } else {
            assertTrue(true);
        }
    }

我得到了“死代码”的错误,我如何修复它

在该位置,
c1
不能为
null
。清除
if
检查

首先,构造函数调用不能返回
null
。使用
new…
将返回非空引用


其次,记住构造函数初始化对象。您可能要测试的是初始化是否如您预期的那样发生。

在该位置,
c1
不能为
null
。清除
if
检查

首先,构造函数调用不能返回
null
。使用
new…
将返回非空引用


其次,记住构造函数初始化对象。您可能需要测试的是初始化是否按照预期进行。

取消检查
c1
是否为空-这是不可能的。构造函数永远不能返回
null

您可能希望测试您的构造函数是否不会引发异常-在这种情况下,只需:

public void testCaesarCipher() {
    new CaesarCipher();
}
。。。很好。不过,在执行时,测试将证明构造函数返回时不会抛出异常这一事实。(当然,测试的存在是编译时检查是否存在无参数构造函数。)

我希望您的其他测试无论如何都需要调用构造函数,在这种情况下,您真的认为值得进行此测试吗

此外,如果确实希望检查某个值是否为null,则应使用:

assertNotNull(c1);

这比你的
if
/
else
要清楚得多。如果您想以编程方式失败,只需调用
fail()
,而不是
assertTrue(false)

取消对
c1
为空的检查-这是不可能的。构造函数永远不能返回
null

您可能希望测试您的构造函数是否不会引发异常-在这种情况下,只需:

public void testCaesarCipher() {
    new CaesarCipher();
}
。。。很好。不过,在执行时,测试将证明构造函数返回时不会抛出异常这一事实。(当然,测试的存在是编译时检查是否存在无参数构造函数。)

我希望您的其他测试无论如何都需要调用构造函数,在这种情况下,您真的认为值得进行此测试吗

此外,如果确实希望检查某个值是否为null,则应使用:

assertNotNull(c1);

这比你的
if
/
else
要清楚得多。如果您想以编程方式失败,只需调用
fail()
,而不是
assertTrue(false)

如果为了检查测试是否有效而不需要if?@RNI2013构造函数调用不能返回
null
。也许您的单元测试应该测试对象的初始化。如果不需要if来检查测试是否有效?@RNI2013构造函数调用不能返回
null
。也许您的单元测试应该测试对象的初始化。谢谢,那么assertNotNull足以确保构造函数按预期工作吗?@RNI2013:不,请仔细阅读我的回答:构造函数永远不能返回null,因此使用
assertNotNull
将毫无意义。这是一个永远不会失败的检查,无论你的构造函数做了什么。如果您真的想检查构造函数是否返回而不引发异常,请按照我的第一段代码调用它。谢谢,所以assertNotNull足以确保构造函数按预期工作?@RNI2013:不,请再次仔细阅读我的答案:构造函数永远不会返回null,因此,使用
assertNotNull
将毫无意义。这是一个永远不会失败的检查,无论你的构造函数做了什么。如果您真的想检查构造函数是否返回而不抛出异常,只需调用它,正如我的第一个代码片段所示。