【问题标题】:Best Way To Test For Correct JSON Serialization测试正确 JSON 序列化的最佳方法
【发布时间】: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


【解决方案1】:

我遇到了和你一模一样的情况,发现JSONassert 很有帮助。

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

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

【讨论】:

    猜你喜欢
    • 2018-08-20
    • 1970-01-01
    • 2018-08-22
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    相关资源
    最近更新 更多