【发布时间】:2015-07-23 05:40:23
【问题描述】:
我使用带有 Java 的 Jackson 库将 POJO 序列化为 JSON,反之亦然。假设我正在运行一些测试,我正在序列化一个对象,并且我知道预期的 JSON 字符串是{"firstName":"John", "lastName":"Doe"}。验证我的对象是否序列化为上述字符串的最佳方法是什么?或者更好的是,验证每个字段是否符合我的预期的最佳方法是什么?
我尝试过简单地对该字符串进行硬编码并进行比较,但是我遇到过一些情况,我序列化为 JSON -> 反序列化为 POJO -> 然后再次将反序列化的 POJO 序列化回 JSON,并且这些字段已超出命令。即使所有字段都正确,字符串比较也会失败。
是否有更好/不同的方法来验证我的 JSON 字符串在测试时是否包含预期的字段?
【问题讨论】:
-
您没有编写 json jackson 库,因此您应该只测试您的代码。但是,如果您希望确定可以将对象序列化为 json,请将其反序列化为对象并验证原始对象是否等于新对象。
-
用户
java.lang.String函数contains()或者你可以使用 regx 来验证 -
序列化为
JsonNode,从文件中读取JsonNode并使用.equals()!
标签: java json testing serialization jackson