为了账号安全,请及时绑定邮箱和手机立即绑定

在 golang 中使用 json 编组测试深度相等性

在 golang 中使用 json 编组测试深度相等性

Go
慕姐4208626 2021-06-16 22:23:30
鉴于这两个测试用例:func TestEqualWhat(t *testing.T) {    testMarshalUnmarshal(t, map[string]interface{}{"a":"b"})    testMarshalUnmarshal(t, map[string]interface{}{"a":5})}testMarshalUnmarshal 助手只是编组到 json 并退出:func testMarshalUnmarshal(t *testing.T, in map[string]interface{}) {    //marshal the object to a string    jsb, err := json.Marshal(in);    if err != nil {        log.Printf("Unable to marshal msg")        t.FailNow()    }    //unmarshal to a map    res := make(map[string]interface{})    if err := json.Unmarshal(jsb, &res); err != nil { t.FailNow() }    if !reflect.DeepEqual(in, res) {        log.Printf("\nExpected %#v\nbut got  %#v", in, res)        t.FailNow()    }}为什么第一个测试用例通过而第二个失败?测试的输出是这样的:Expected map[string]interface {}{"a":5}but got  map[string]interface {}{"a":5}--- FAIL: TestEqualWhat (0.00 seconds)这是 go playground 上的类似代码,因此您可以轻松对其进行破解。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 242 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信