如何将 gomega 的 ContainElements 匹配器与自定义相等匹配器一起使用
学习知识要善于思考,思考,再思考!今天编程网小编就给大家带来《如何将 gomega 的 ContainElements 匹配器与自定义相等匹配器一起使用》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!
问题内容在测试中,我有一个元素列表 actual
,其结构与此类似:
type mystruct struct {
field1 string
field2 int32
.
. // a long list of other fields
.
}
我想断言actual
包含预期元素列表的元素,但仅考虑field1
和field2
,其他字段与测试无关。我想将 containelements
匹配器与一些“神奇”自定义匹配器一起使用,如以下伪代码所示:
expected := []MyStruct{{Field1: "value1", Field2: 1} ...{Field1: "value2", Field2: 2}}
Expect(actual).To(ContainElements(expected), <custom matcher>)
我一直在研究 [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 匹配器与自定义相等匹配器一起使用》的内容介绍就到此结束,如果有什么疑问或者建议,可以在编程网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341