我使用带有Java的Jackson库将POJO序列化为JSON,反之亦然。假设我正在运行一些测试,我正在序列化一个对象,我知道预期的JSON字符串是{"firstName":"John", "lastName":"Doe"}
。验证我的对象序列化为上述字符串的最佳方法是什么?或者更好的是,验证每个字段是我期望的最佳方法是什么?
我已经尝试过简单地对该字符串进行硬编码并进行比较,但我有过将其序列化为JSON的情况 - >反序列化为POJO - >然后再次将反序列化的POJO序列化回JSON,并且字段乱序。然后,即使所有字段都正确,字符串比较也会失败。
在测试时是否有更好/不同的方法来验证我的JSON字符串是否包含预期的字段?
答案 0 :(得分:0)
我遇到了与你完全相同的情况,发现JSONassert非常有帮助。
在您的JUnit测试中,您必须添加以下内容:
String actual = getSerializedContent();
String expected = "{firstName:\"John\", lastName:\"Doe\"}";
JSONAssert.assertEquals(expected, actual, false);