java - 在 java 程序中使用 json 单元测试文件
问题描述
我正在尝试对一些代码进行单元测试。我的输入数据中有 2 个字段可能在数据中也可能不在数据中,因此我想测试所有 4 个场景(ab、a 不是 b、b 不是 a、a 和 b 都不是)。我创建了 4 个不同的 json 文件用作模拟输入,涵盖了每个场景。我本可以创建一个没有任何字段的文件,然后将所需字段添加到 4 个测试中的每一个的模拟数据中。对我来说,这种方法似乎测试对测试数据有太多控制。我更喜欢 4 个文件的方法,但我的一位同事抱怨 4 个文件几乎完全相同。
我知道这是在征求意见,但这似乎是更好的方法?是否有所有 4 个文件,或者每个测试都在断言之前操作数据?
解决方案
就像我一样,你的同事是对的。
创建两个文件:a.json-part
和b.json-part
. 让我们a.json-part
包含
"a": .....
并b.json-part
包含类似的内容b
(注意:不是 JSON,只是一部分!)
因此,对于您的测试,您可以通过简单的部分连接来构建测试数据,例如
String ab_json = "{" + readAsText("a.json-part") + "," + readAsText("b.json-part") + "}";
String a_not_b_json = "{" + readAsText("a.json-part") + "}";
等等。
在这种情况下,您可以根据需要组合您的字段,并且可以确保您不会错过任何文件,以防某些字段发生更改。
推荐阅读
- token - 无效令牌直接访问此链接可能导致潜在的安全漏洞
- android - AlertDialog 非活动所需的 Theme.AppCompat 主题
- javascript - 如何使用 jQuery 在循环中将链接附加到 ul?
- mysql - VS 2017 和 MySQL:将 MySQL.Data 更新到 8.0.11.0 并且我的查询都不起作用
- r - 在ggplot2中按组修改alpha值
- sql - 如何检查可空列的新值是否与旧值不同
- spring - 发生错误时可重复 KStream
- sql-server - 当单元格之一必须接受超过 255 个字符的值时,如何从 SQL Server 在 Excel 中加载数据
- java - 如何扫描和响应用户的输入?
- react-native - 任何带有初始向量的 AES 128 加密的本机库?