Первое утверждение для
Assert.AreEqual(deserialized.foo.bar, "baz");
на самом деле работает для меня, как и ожидалось.
Из порядка полей вашего класса я бы ожидал, что reserialized
скорее будет иметь значение
"{\"rootStr\":\"rootStrValue\", \"foo\":{\"bar\":\"baz\"}}";
так как он идет сверху вниз. Это, очевидно, не совсем совпадает с данной строкой json
, хотя она имеет в основном то же содержание.
Итак,
Assert.AreEqual(reserialized, json);
всегда будет неудачным, если ваш исходный ввод json
не имеет точно совпадающего порядка
JsonUtility.ToJson(deserialized);
Кстати, это именно то, о чем уже говорит результат:
SerializationSimplePasses (0,027 с)
---
Длина строк - 46. Строки различаются по индексу 2.
Ожидаемый: "{"rootStr":"rootStrValue","foo":{"bar":"baz"}}"
Но было: "{"foo":{"bar":"baz"},"rootStr":"rootStrValue"}"
------------- ^
---
в Tests.Serialization.SerializationSimplePasses () [0x0003c] в E: ... \ Assets \ Tests \ NewTestScript.cs: 31