你用什么为编写数据驱动的试验jUnit?

(我的定义)的一个数据驱动的试验是测试的读数据从一些外部来源(文件、数据库,...)执行一个试验每线/文件/无论,并将结果显示在一个测试运作,如果你有独立的测试结果的各个运行单独显示,不在一个巨大的集合体。

有帮助吗?

解决方案

在JUnit4可以使用参数的TestRunner做驱动数据测试

它不是非常有据可查的,但基本思想是创建一个返回对象阵列的集合的静态方法(带@Parameters注释)。每个这些阵列被用作参数的测试类的构造,然后通常的试验方法可以使用在构造函数中设置字段中运行。

您可以编写代码读取和解析的方法<=>外部文本文件(或获取其它外部数据源),然后你可以通过编辑这个文件,添加新的测试,而无需重新编译测试

其他提示

这是其中TestNG的,以其@DataSource,闪耀。这是一个原因,我更喜欢JUnit的;其它的是依赖关系和平行的螺纹测试。

我使用一个内存数据库例如 HSQLDB 这样我可以具有预填充数据库一个“生产式”数据集或者我可以用空的HSQLDB数据库,并开始与我需要执行我的测试行填充它。最重要的是我会写使用的JUnit 和的 的Mockito

我使用的组合 dbUnit, jMock 和jUnit4.然后你可以醚运行它作为或单独的套房

您最好还是使用适合您的需求的“DataDrivenTestCase”扩展的TestCase。 这里是工作示例: http://mrlalonde.blogspot.ca/2012/08 /data-driven-tests-with-junit.html

不同于参数测试,其允许很好地命名的测试用例。

我和@ DroidIn.net,这正是我在做什么,但是从字面上回答你的问题“并就好像你单独的测试,显示在测试运行的结果”你必须看看JUnit4参数亚军。 DBUnit的没有做到这一点。如果你必须做大量的这个,说实话TestNG的是更灵活,但你完全可以把它在JUnit中完成的。

您也可以看看JUnit的理论亚军,但我的记忆是,它不太适合数据驱动的数据集,哪一种是有道理的,因为JUnit是不是与大量外部数据的工作。

虽然这是一个很古老的话题,我仍然认为促进我的份额。我觉得JUnit支持数据驱动的试验是不太友好。为。为了使用参数化,我们需要写我们的构造。与理论亚军我们没有控制权的设定的试验数据,通过测试的方法。

有更多的缺点,因为确定这篇文章系列: http://www.kumaranuj.com/2012/08/junits-parameterized-runner-and-data.html

现在有一个全面解决起来非常漂亮的形式EasyTest这是一个框架扩展出来的JUnit而是意味着给予了很多的功能,它的用户。其主要重点是执行数据驱动的测试使用JUnit,尽管你是不是需要实际上取决于JUnit了。这里是审查项目引用: https://github.com/anujgandharv/easytest

如果有人有兴趣贡献他们的想法/守则/建议,那么这就是时间。你可以简单地去审查存储库,并创建问题。

典型地数据驱动测试用小可测试组件来处理的数据。 (文件读出对象,或模拟对象)有关的数据库,以及资源的应用嘲笑以外用于similate其他系统。 (Web服务和数据库等)。通常,我看到的是,有一些处理的数据,并输出外部数据文件。通过这种方式,数据文件可以被添加到VCS。

我们目前拥有的道具,在这我们的ID号文件。这是可怕的脆弱,但很容易得到的东西去。我们的计划是先有由-D性质在我们的蚂蚁构建覆盖的这些ID号。

我们的环境使用与没有(例如,通过DBUnit的)运行之前可加载可怕缠结数据遗留DB。最后,我们想获得到一个单元测试将查询数据库找到与被测财产的ID,然后使用该ID的单元测试。这将是缓慢的,更恰当地称为集成测试,而不是“单元测试”,但我们会针对测试的真实数据,以避免在我们的应用程序运行完全针对测试数据,但无法与真实数据的情况。

有人试验将借给自己是接口驱动。

如果数据库/文件读取通过接口调用检索,然后简单地得到您的单元测试来实现接口和单元测试类可以返回任何你想要的数据。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top