在 Go 中测试映射等效性
在表驱动测试中,测试映射等效性的挑战出现了。手动检查长度和键值对变得乏味,尤其是在针对不同的地图类型重复检查时。
惯用解决方案
惯用解决方案利用 Go 标准库的 Reflect 包。 Reflect.DeepEqual 函数接受两个 interface{} 参数,并通过以下方式检查是否相等:
示例
import "reflect" func TestMapEquality(t *testing.T) { m1 := map[string]int{"foo": 1, "bar": 2} m2 := map[string]int{"foo": 1, "bar": 2} eq := reflect.DeepEqual(m1, m2) if !eq { t.Errorf("Maps not equal: %v", m1, m2) } }
附加说明
以上是如何在 Go 中测试 Map 等价性?的详细内容。更多信息请关注PHP中文网其他相关文章!