首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将gomega的ContainElements匹配器与自定义相等匹配器一起使用

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

Stack Overflow用户
提问于 2020-04-29 03:47:07
回答 2查看 220关注 0票数 0

在一个测试中,我有一个元素的列表actual,它的结构类似于:

代码语言:javascript
复制
type MyStruct struct {
     Field1 string
     Field2 int32
     .
     .       // a long list of other fields
     .

}

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

代码语言:javascript
复制
expected := []MyStruct{{Field1: "value1", Field2: 1} ...{Field1: "value2", Field2: 2}}
Expect(actual).To(ContainElements(expected), <custom matcher>)

我一直在研究1中的WithTransform匹配器,但是我不知道如何在这个上下文中使用它。

1

EN

回答 2

Stack Overflow用户

发布于 2021-02-27 00:35:59

您可以使用MatchFields(IgnoreExtras,Fields{})仅比较给定的字段,因此在您的示例中,它应该如下所示:

代码语言:javascript
复制
ContainElement(MatchFields(IgnoreExtras,Fields{
                    "Field1": Equal("Value1"),
                    "Field2": Equal(int32(42)),
                }))
票数 0
EN

Stack Overflow用户

发布于 2021-07-09 16:47:43

我认为你可以直接使用定制的gomega matcher respect。看起来像是

代码语言:javascript
复制
expected := []MyStruct{{Field1: "value1", Field2: 1} ...{Field1: "value2", Field2: 2}}
Expect(actual).To(Respcet(expected))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61488725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档