为了账号安全,请及时绑定邮箱和手机立即绑定

功能类似于 assert.Contains by stretr/testify 但忽略大小写和空格

功能类似于 assert.Contains by stretr/testify 但忽略大小写和空格

Go
一只斗牛犬 2023-02-06 14:50:34
例如,我这里有这个测试assert.Contains(t, "HELLO     WORLD", "hello world)我希望它返回true。显然,我可以事先用strings.TrimSpace()、strings.ReplaceAll()和清理字符串。strings.ToLower()虽然当我有几十个这样的东西时它会变得很麻烦。有没有更清洁的方法来实现这一目标?或者我可以修改或创建自定义的assert.NormalizedContains()吗?谢谢你的反馈!
查看完整描述

1 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

您可以创建一个func normalize(s string) string并将其与 一起使用assert.Contains,例如:


func normalize(s string) string {

    return strings.ToLower(strings.Join(strings.Fields(s), ""))

}


func TestFoo(t *testing.T) {

    assert.Contains(t, normalize("HELLO     WORLD"), "hello world")

    // or you might want to normalize both:

    assert.Contains(t, normalize("HELLO     WORLD"), normalize("hello world"))

}

如果你真的经常这样做,你可以创建一个自定义func assertNormalizedContains(t *testing.T, haystack, needle string)并使用它而不是assert.Contains. 尽管我认为这还不是很清楚。


查看完整回答
反对 回复 2023-02-06
  • 1 回答
  • 0 关注
  • 172 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号