在我的公司,我们在 Java Web 应用程序中使用 JUnit 进行了越来越多的集成测试。每个测试都使用一些特定的外部 XML 文件来使用测试所需的数据填充数据库。问题是:
- 当模型发生变化时,我们需要很长时间来更正所有 XML 文件(我们有数百个 XML 文件,其中很多是冗余的)。
- 手动创建 XML 文件的复杂性阻碍了程序员探索不同的场景。
- 我们在测试数据和测试之间没有链接(例如,在测试中我不知道 XML 插入的用户的“名称”)。我们可以硬编码我们需要的信息,但它也会增加维护时间以保持 XML 和硬编码数据同步。
面对这个问题,我开始考虑使用自己的系统 CRUD 来为每个测试生成测试数据。在每个测试开始时,我会运行一些方法来保存测试所需的数据。在我看来,它将解决所有 3 个问题,因为:
- 无论如何,对模型的更改都需要更改 CRUD,因此不再需要更正测试数据。
- 构建、测试数据会更容易,因为我们不必担心手动匹配实体的 id 和外键之类的事情。
- 我将在 IDE 保证同步的变量中拥有所有重要数据。
但是,对我来说,开始这种方法缺乏经验和知识。问题是:这个解决方案有效吗?这种方法会导致其他问题吗?我在哪里可以在文献中找到这种方法?列出的问题是否有更好的解决方案?