测试正确的JSON序列化的最佳方法

时间:2015-07-23 05:40:23

标签: java json testing serialization jackson

我使用带有Java的Jackson库将POJO序列化为JSON,反之亦然。假设我正在运行一些测试,我正在序列化一个对象,我知道预期的JSON字符串是{"firstName":"John", "lastName":"Doe"}。验证我的对象序列化为上述字符串的最佳方法是什么?或者更好的是,验证每个字段是我期望的最佳方法是什么?

我已经尝试过简单地对该字符串进行硬编码并进行比较,但我有过将其序列化为JSON的情况 - >反序列化为POJO - >然后再次将反序列化的POJO序列化回JSON,并且字段乱序。然后,即使所有字段都正确,字符串比较也会失败。

在测试时是否有更好/不同的方法来验证我的JSON字符串是否包含预期的字段?

1 个答案:

答案 0 :(得分:0)

我遇到了与你完全相同的情况,发现JSONassert非常有帮助。

在您的JUnit测试中,您必须添加以下内容:

String actual = getSerializedContent();
String expected = "{firstName:\"John\", lastName:\"Doe\"}";
JSONAssert.assertEquals(expected, actual, false);