Не удается распаковать маршалированный объект времени из-за нескольких символов
Test
объявить следующее:
// values
now := time.Now()
timeToJSON, _ := json.Marshal(now)
var obj time.Time
json.Unmarshal(timeToJSON, &obj)
затем выполните следующую тестовую логику:
if !assert.Equal(t,
now.String(),
obj.String()) {
t.FailNow()
}
Ожидается
тест для прохождения, и два объекта должны быть равны
Фактический
Не удалось:
--- FAIL: TestFromJSON (0.00s)
D:\dev2017\GO\src\ezsoft\apiserver_sdk\model\delete\deleteModel_test.go:94:
Error Trace: deleteModel_test.go:94
Error: Not equal:
expected: "2018-09-04 10:36:18.3627338 -0400 EDT m=+0.014000801"
actual : "2018-09-04 10:36:18.3627338 -0400 EDT"
Diff:
--- Expected
+++ Actual
@@ -1 +1 @@
-2018-09-04 10:36:18.3627338 -0400 EDT m=+0.014000801
+2018-09-04 10:36:18.3627338 -0400 EDT
Test: TestFromJSON
FAIL
FAIL ezsoft/apiserver_sdk/model/delete 1.336s
Error: Tests failed.
Примечание
Я замечаю, что при проверке выходных данных каким-то образом m=+[blah]
добавляется к ожидаемому / фактическому.
Я не знаю почему, однако, и скимминг RFC 3339 не дает мне никаких намеков, почему.