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

标签 java json testing serialization jackson

我使用 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/

相关文章:

c# - Visual Studio 2012 Ordered Test,如何监控测试执行

testing - 使用 IBM Rational 对 "Finacle - Infosys"核心银行系统进行功能和性能测试

java - DynaValidatorForm 的目的

java - 以编程方式快速查找可执行文件路径

java - 类型参数 T 隐藏了类型 T

java - 如何在计数后将变量的值重新分配给另一个变量

java - java中解析json对象,找不到对象

c# - 在 ASP.NET Core Web 应用程序中,AddJsonOptions 和 AddJsonFormatters 之间有什么区别?

javascript - 如何将多维数组从 PHP 传递到 Javascript?

ruby-on-rails - 如何使用 RSpec 测试一个项目的类别是否是类别表中的有效类别?