java - 在java程序中使用json单元测试文件

标签 java unit-testing

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

我知道这是在征求意见,但这似乎是更好的方法?拥有全部 4 个文件,还是让每个测试在断言之前操作数据?

最佳答案

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

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

等等。

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

关于java - 在java程序中使用json单元测试文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55406692/

相关文章:

javascript - 异步等待单元测试问题

Java Files.Copy 删除第一个文件的内容

java - Selenium Appium Java Android Chrome 浏览器

java - 将 Map<String,String> 转换为 Map<Long,Long>

java - 在android模拟器中测试前进和后退

node.js - 在所有测试运行后开 Jest 清理

unit-testing - tensorflow Nose 测试: lots of debugging output,如何禁用

java - 调试 Android 应用程序时遇到问题 : ClassNotFoundException

php - "Cannot set session ID after the session has started."测试表单时

python - Django 单元测试和全局固定装置