使用jUnit进行数据驱动的测试

rip*_*234 29 java junit unit-testing data-driven-tests

你在jUnit中用什么来编写数据驱动的测试?

(我的定义)数据驱动测试是从一些外部源(文件,数据库......)读取数据,每行/文件/执行一次测试的测试,并在测试运行器中显示结果,就好像你有单独的测试 - 每次运行的结果是单独显示的,而不是一个巨大的聚合.

mat*_*att 39

在JUnit4中,您可以使用Parameterized testrunner进行数据驱动测试.

它没有很好的文档记录,但基本的想法是创建一个静态方法(带注释@Parameters),返回一个Object of Array数组.这些数组中的每一个都用作测试类构造函数的参数,然后可以使用构造函数中设置的字段运行常用的测试方法.

您可以编写代码来读取和解析方法中的外部文本文件@Parameters(或从其他外部源获取数据),然后您可以通过编辑此文件来添加新测试,而无需重新编译测试.


duf*_*ymo 9

这就是TestNG及其@DataSource的亮点.这就是为什么我更喜欢JUnit的原因之一; 其他是依赖项和并行线程测试.

  • 七年后,我改变了主意; 我倾向于坚持使用JUnit.参数化测试很有帮助. (2认同)

dig*_*nie 8

我使用内存数据库,如hsqldb,以便我可以使用"生产样式"数据集预先填充数据库,或者我可以从空的hsqldb数据库开始,并用我需要执行的数据行填充它测试.最重要的是,我将使用JUnitMockito编写测试.

  • 不知道为什么你对这个答案投了反对票.这当然是一种有效的方法. (2认同)