使用JavaMockito模拟string.equalsIgnoreCase(string)

使用JavaMockito模拟string.equalsIgnoreCase(string),java,mockito,Java,Mockito,我在用其他字符串测试字符串时发现空指针异常。 我有一个字符串变量(比如str_var),我在一个条件中检查它是否等于(比如说“abc”),执行一个步骤,如果不是,则执行其他步骤 if (str_var.equalsIgnoreCase("abc") { // do something } else { // do something else } 在用mockito测试这段代码时,我发现str_var null导致了null指针异常 需要一些关于如何使测试成功的信息。您可以使用

我在用其他字符串测试字符串时发现空指针异常。 我有一个字符串变量(比如str_var),我在一个条件中检查它是否等于(比如说“abc”),执行一个步骤,如果不是,则执行其他步骤

if (str_var.equalsIgnoreCase("abc") {
    // do something
} else {
    // do something else
}
在用mockito测试这段代码时,我发现str_var null导致了null指针异常

需要一些关于如何使测试成功的信息。

您可以使用:

"abc".equalsIgnoreCase(str_var)

这将有助于避免出现
NullPointerException

您可以粘贴代码来显示str_var是如何初始化的吗?因此,您的问题是
str_val
为null并且不应该为null,还是您不知道如何在不抛出NPE的情况下检查其值?不要试图模仿
字符串的行为:只使用一个real
String
。如果你得到一个NPE,那是因为你没有将
str_var
设置为非空值,这与mockito无关。从这个问题上我理解OP-want/expect-to-test关于str_var的值是空的。如果我没有错的话,我想他会想用str_val nullTrue转到其他部分,我只是强调这一点。我认为最好首先探究为什么会有空值,看看是否有更好、更优雅的解决方案。是的,我同意你的观点。当然可以有更好的解决方案。这个字符串是从spring@Value annotation获取的属性。我没有在代码中硬编码值。但是,是的,上面的解决方案是我们讨论了NPE问题。