首页 > 解决方案 > 在 java 程序中使用 json 单元测试文件

问题描述

我正在尝试对一些代码进行单元测试。我的输入数据中有 2 个字段可能在数据中也可能不在数据中,因此我想测试所有 4 个场景(ab、a 不是 b、b 不是 a、a 和 b 都不是)。我创建了 4 个不同的 json 文件用作模拟输入,涵盖了每个场景。我本可以创建一个没有任何字段的文件,然后将所需字段添加到 4 个测试中的每一个的模拟数据中。对我来说,这种方法似乎测试对测试数据有太多控制。我更喜欢 4 个文件的方法,但我的一位同事抱怨 4 个文件几乎完全相同。

我知道这是在征求意见,但这似乎是更好的方法?是否有所有 4 个文件,或者每个测试都在断言之前操作数据?

标签: javaunit-testing

解决方案


就像我一样,你的同事是对的。

创建两个文件:a.json-partb.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") + "}";

等等。

在这种情况下,您可以根据需要组合您的字段,并且可以确保您不会错过任何文件,以防某些字段发生更改。


推荐阅读