【发布时间】:2021-06-29 15:31:45
【问题描述】:
我正在构建一个库,它接收一个 JSON 字符串并根据用户选择的模板和规范对其进行格式化。
我最近开始为这个库编写单元测试,发现在某些情况下创建我可以断言的数据需要大量代码,并且在大多数情况下会使测试难以阅读。
作为包的作用的一个例子:
输入json:
{
"id": 1,
"name": "abc",
"barId": 5
}
输出json:
{
"href": "/foo/1",
"name": "abc",
"_children": [
"bar": {
"href": "/bar/5"
}
]
}
因此,根据用户配置,解析后的 json 可能会被深度嵌套。
目前我已经构建了一个生成器,它使用 Newtonsoft.Json 来生成要断言的对象,但所有这些工作让我开始思考是否有更好的方法来做到这一点。
我需要做的一些测试例如:
- 检查返回的 json 是否应该包含“_children”
- 如果 href 为空、null 或根本不存在
- 如果属性传递正确
- 如果孩子的属性正确传递
- 所有变化都基于配置。
那么,回到这个问题,是否有一些干净的方法来执行这种断言?除了手动构建之外,有没有更快的方法来构建预期的 json?
【问题讨论】: