鉴于这两个测试用例: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
提交
取消