用于java的数据驱动集成测试工具

时间:2011-02-01 15:51:07

标签: junit integration-testing data-driven-tests

我正面临着我认为常见的问题,但我没有找到太多讨论或现有工具来解决它。我正在尝试建立一个集成测试系统(已经有一套强大的单元测试),它支持QA提交输入数据和预期结果(理想情况下是平面文件的形式),可以从标准化的junit类运行。

我计划使用junit @Paramaterized注释在这里滚动自己。我想象每组数据和结果都有一个控制文件,所有控制文件都放在一个目录中。参数生成器方法将扫描此目录并返回这些文件的列表。然后,测试构造函数将读取此文件并设置输入数据和预期结果。

在我开始写这篇文章之前,我想看看是否已经有工具来做这类事情,如果没有,请对我提出的解决方案有所了解。

应用程序本身是一个纯粹的后端ETL类型工具,它以各种格式从多个输入文件中获取数据,并在数据库中生成结果。我已经有一些静态集成测试,它们在内存数据库中使用Derby来检查简单输入数据的结果,我打算使用类似的系统来确认这里的数据。预期结果将是(key_value, column, expected value)三倍的形式。我想使用junit来配合我们的其他测试和结果报告基础架构。

2 个答案:

答案 0 :(得分:3)

查看Spock,这是一个基于Groovy的测试框架,强大支持数据驱动的测试。 Spock专为测试Java(和Groovy)代码而设计,并且与JUnit完全兼容(实际上,Spock测试是使用JUnit运行的)。有关从数据库中提取数据的简单示例测试,请参阅here

一般来说,你的计划对我来说听起来很合理,也可以用普通的JUnit和@Parameterized来实现。 Spock和Groovy可以让你的生活更轻松。例如,在Groovy中使用文本文件和数据库比在Java中更容易。

免责声明:我是Spock的创始人。

答案 1 :(得分:0)

我更喜欢Spock。但我确实看到有一个JUnitParams框架比直接JUnit参数化测试更具可读性:

https://github.com/Pragmatists/junitparams

可以在以下网址找到很好的描述:

https://weblogs.java.net/blog/johnsmart/archive/2014/07/23/data-driven-unit-testing-java

对于其他人来说这个问题......

相关问题