junit assertEquals ignore case

2022-09-01 15:08:05

im只是从c# ->java移动。我需要使用 junit 编写一些测试。在我的测试中,我需要比较两个字符串以查看它们是否匹配。因此,我们也有 Assert.assertEquals,但这是区分大小写的。我怎样才能使它不区分大小写?我需要的是:

"blabla".equals("BlabLA")

以返回 true。

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

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

我很快就通过Junit文档,但我似乎找不到这样的东西。


答案 1

我发现Hamcrest提供的必须比默认断言更好的断言。Hamcrest提供了更多的选择,并在失败时提供了更好的消息。一些基本的匹配器是内置的,并且内置了assertaThat,所以这不是一个全新的东西。在此处查看 API 中的包。试试 IsEqualIgnoringCase,它看起来像这样。JUnitHamcrestJUnitJUnithamcrest.coreJUnit

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

对于静态导入,这将是

assertThat(myString, equalToIgnoringCase(expected));

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

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

这样做的优点之一是,失败会说明 .与使用 时相反。expected someString but was someOtherStringexpected true got falseassertTrue


答案 2

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

然后您可以使用

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

推荐