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