junit assertEquals忽略大小写[英] junit assertEquals ignore case

问题描述

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

"blabla".equals("BlabLA")

返回真.

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

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

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

推荐答案

我发现 Hamcrest 提供了必须更好的断言比默认的 JUnit 断言.Hamcrest 提供了更多选择,并提供了更好的失败信息.JUnit 中内置了一些基本的 Hamcrest 匹配器,而 JUnit 具有 assertThat 内置,所以这不是全新的东西.请在 这里 中查看 JUnit API 中的 hamcrest.core 包.试试 IsEqualIgnoringCase 看起来像这样.

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

对于静态导入,这将是

assertThat(myString, equalToIgnoringCase(expected));

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

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

这样做的好处之一是失败会表明expected someString but was someOtherString.与使用 assertTrue 时的 expected true got false 不同.

本文地址:https://www.itbaoku.cn/post/978721.html

相关标签/搜索