提问者:小点点

junit assertEquals忽略大小写


我只是从c#-

"blabla".equals("BlabLA")

返回true。

所以在C#中,我们曾经有:

public static void AreEqual (
    string expected,
    string actual,
    bool ignoreCase,
    string message
)

我正在快速浏览JUnit文档,但我似乎找不到这样的东西。


共3个答案

匿名用户

我发现Hamcrest提供了比默认JUnit断言更好的断言。Hamcrest提供了很多更多的选项,并在失败时提供了更好的消息。一些基本的Hamcrest匹配器内置在JUnit中,JUnit内置了assertThis,因此这不是全新的东西。请参阅JUnitAPI中的hamcrest. core包。尝试一下看起来像这样的IsEqualIgnoringCase。

assertThat(myString, IsEqualIgnoringCase.equalToIgnoringCase(expected));

对于静态导入,这将是

assertThat(myString, equalToIgnoringCase(expected));

如果你想变得非常花哨,你会这样做:

assertThat(myString, is(equalToIgnoringCase(expected)));

这样做的优点之一是失败会声明期望某个String但却是某个其他String。与相反,在使用assertTrue时,预期的true变为false

匿名用户

使用

"blabla".equalsIgnoreCase("BlabLA") use for check equality ignore case

然后你就可以用

 assertTrue("blabla".equalsIgnoreCase("BlabLA"))

匿名用户

JUnit中不直接支持此断言(当然假设您使用的是JUnit),但您可以使用:

assertTrue("blabla".equalsIgnoreCase("BlabLA"))

可能值得将其包装在一个单独的辅助方法中,如果它们不匹配,该方法会提供合理的失败消息(查看assertTrue的文档以了解如何做到这一点)。