You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用TestNG对大小写不同的两个字符串执行assertEquals断言校验

TestNG忽略字符串大小写的相等断言方案

TestNG 原生的assertEquals方法默认执行大小写敏感的字符串对比,直接传入"hello world"和"HELLO world"会触发断言失败,要实现忽略大小写的校验可选择以下两种方案:

方案1:使用内置忽略大小写断言(推荐,适配TestNG 6.1及以上版本)

TestNG 官方已经提供了专门的assertEqualsIgnoreCase方法,无需手动处理字符串转换,直接调用即可完成忽略大小写的相等校验:

import org.testng.Assert;
import org.testng.annotations.Test;

public class StringEqualsTest {
    @Test
    public void testIgnoreCaseAssert() {
        String lowerStr = "hello world";
        String mixedCaseStr = "HELLO world";
        // 参数顺序:第一个为实际值,第二个为期望值
        Assert.assertEqualsIgnoreCase(mixedCaseStr, lowerStr);
    }
}

该方法的报错提示和常规assertEquals保持一致,会清晰展示两个字符串的差异,无需额外自定义失败描述。

方案2:手动统一大小写后校验(适配TestNG 6.1以下版本)

如果使用的TestNG版本较低没有内置上述方法,可以手动将两个字符串统一转换为全小写或全大写后,再用普通assertEquals对比:

import org.testng.Assert;
import org.testng.annotations.Test;
import java.util.Locale;

public class StringEqualsTest {
    @Test
    public void testManualIgnoreCaseAssert() {
        String lowerStr = "hello world";
        String mixedCaseStr = "HELLO world";
        // 指定Locale避免特殊语言的大小写转换规则导致的异常,不需要可去掉Locale参数
        Assert.assertEquals(mixedCaseStr.toLowerCase(Locale.ROOT), lowerStr.toLowerCase(Locale.ROOT));
    }
}

注意事项

  • 如果校验场景涉及非英语的特殊字符,建议统一指定Locale参数,避免本地默认语言的大小写转换规则导致预期外的校验失败。
  • 若允许输入字符串为null,建议先添加非空断言,避免调用大小写转换方法时触发空指针异常。

内容的提问来源于stack exchange,提问作者Bk Karim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:45:10