java - 如何使用asserj断言嵌套json的值?
问题描述
我正在尝试使用 assertJ 从 JSON 地图对象打印和断言addressLine1和邮政编码值,但在断言时遇到问题。
{
"Region": {
"Test": {
"address": {
"addressLine1": "addressLine1",
"addressLine2": "addressLine2",
"otherDetails": {
"postcode": "LS1 4HR",
"country": "United Kingdom"
}
}
}
}
}
我已将 jabove json 转换为Map<String, Object> jsonAsMap 并尝试如下:
assertThat(jsonAsMap)
.isNotNull()
.isNotEmpty()
.hasEntrySatisfying("Region", Region -> assertThat(Region).hasFieldOrProperty("Test").hasFieldOrProperty("address") )
.containsEntry("addressLine1","addressLine1");
解决方案
我建议将https://github.com/lukas-krecan/JsonUnit用于 JSON 断言(或任何其他 JSON 断言库),您将获得比不知道 JSON 的 AssertJ 更好的功能。
推荐阅读
- python-3.x - 如何在python中使用for循环打开文件
- python - 如何递归遍历列表
- jquery - 使用 JQuery 可以获取 img.show() 的 ID 吗?
- mysql - 我如何“加入”但在 MySQL 的表中保持独立?
- sql - Postgresql - 组内的最小/最大日期范围
- entity-framework - Microsoft.AspNetCore.Identity.IdentityError:“无效用户名”
- javascript - Google 脚本 - 表单:以编程方式处理上传字段:如何获取多个链接?什么都没有上传时如何处理“未定义”?
- regex - 如何为以下匹配创建正则表达式
- python - Python - 跨多个模块与 GUI 元素交互
- tinymce - Tinymce:在编辑器之外创建一个自定义工具栏,如图所示