断言 golang 切片具有相等的元素,无论顺序如何

问题描述 投票:0回答:1

我在

golang
测试中有以下断言

us.EqualValues(testUnitMergeEnvVars[i].expectedEnvVars, gotValues)

其中

us
testify/suite.Suite
类型

此操作失败并显示以下消息

expected: []envs.KeyValue{envs.KeyValue{Key:"MOO", Value:"lala"}, envs.KeyValue{Key:"KOO", Value:"Lorem\nipsum"}, envs.KeyValue{Key:"JOO", Value:"JAR"}}

actual  : []envs.KeyValue{envs.KeyValue{Key:"KOO", Value:"Lorem\nipsum"}, envs.KeyValue{Key:"MOO", Value:"lala"}, envs.KeyValue{Key:"JOO", Value:"JAR"}}

切片包含以下自定义类型

type KeyValue struct {
    Key   string
    Value string
}

既然切片具有相同的元素,为什么测试会失败?我不在乎订单。

go testing assert
1个回答
0
投票

您应该使用

ElementsMatch
断言:

ElementsMatchf 断言指定的 listA(array, slice...) 相等 指定的 listB(array, slice...) 忽略元素的顺序。如果 存在重复元素,每个元素出现的次数 两个列表应该匹配。

© www.soinside.com 2019 - 2024. All rights reserved.