登录
首页 >  Golang >  Go问答

类似assert.Contains 的功能,由stretchr/testify 提供,但忽略大小写和空格

来源:stackoverflow

时间:2024-04-16 17:00:29 495浏览 收藏

大家好,今天本人给大家带来文章《类似assert.Contains 的功能,由stretchr/testify 提供,但忽略大小写和空格》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

问题内容

例如,我这里有这个测试

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

我希望它返回true。显然,我可以预先使用 strings.trimspace()strings.replaceall()strings.tolower() 清理字符串。尽管当我有几十个这样的东西时它会变得很麻烦。有没有更清洁的方法来实现这一目标?或者我可以修改或创建自定义的 assert.normalizedcontains() 吗?感谢您的投入!


正确答案


您可以创建一个 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。尽管我认为这并不那么清楚。

到这里,我们也就讲完了《类似assert.Contains 的功能,由stretchr/testify 提供,但忽略大小写和空格》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>