登录
首页 >  Golang >  Go问答

如何将 gomega 的 ContainElements 匹配器与自定义相等匹配器一起使用

来源:stackoverflow

时间:2024-03-30 21:27:33 250浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《如何将 gomega 的 ContainElements 匹配器与自定义相等匹配器一起使用》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

在测试中,我有一个元素列表 actual ,其结构与此类似:

type mystruct struct {
     field1 string
     field2 int32
     .
     .       // a long list of other fields
     .

}

我想断言actual包含预期元素列表的元素,但仅考虑field1field2,其他字段与测试无关。我想将 containelements 匹配器与一些“神奇”自定义匹配器一起使用,如以下伪代码所示:

expected := []MyStruct{{Field1: "value1", Field2: 1} ...{Field1: "value2", Field2: 2}}
Expect(actual).To(ContainElements(expected), )

我一直在研究 [1] 中的 withtransform 匹配器,但我一直无法弄清楚如何在这种情况下使用它。

[1] http://eng.rightscale.com/2015/11/30/composition-gomega-matchers.html


解决方案


您可以使用 matchfields(ignoreextras, fields{}) 仅比较给定字段,因此在您的情况下,它应该类似于:

ContainElement(MatchFields(IgnoreExtras,Fields{
                    "Field1": Equal("Value1"),
                    "Field2": Equal(int32(42)),
                }))

今天关于《如何将 gomega 的 ContainElements 匹配器与自定义相等匹配器一起使用》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

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