为单元测试用例设置批量数据

时间:2010-09-27 04:58:14

标签: unit-testing testing junit automated-tests

我使用Spring MVC开发了一个处理批量数据插入/更新的应用程序。例如:有一些用例插入具有100-125个属性的记录。

对于批量数据插入,我很难对要插入单元测试类中的值进行编码。我有Transfer Object来传输数据,所以我在我的Unit测试用例中填充这些TO,然后调用所需的操作进行测试。对于每个DAO,单元测试CRUD操作至少需要4个测试用例。

我发现很难通过硬编码我的测试用例源文件中的值来填充TO。为每个单元测试案例编写125个setter。我想通过从XML文件或任何类型的媒体中读取数据来动态填充我的TO,这样我就不需要每次都更改测试用例的硬编码数据。

在XML文件中设置数据比在JUNIT源文件中对值进行硬编码要容易得多。

我可以想到一些创新的解决方案,比如在XML文件中设置数据,然后使用任何JAXB实现来读取相同的内容并填充TO ..但我相信有很多简单而且更好的方法来处理这种要求

需要一些帮助。

3 个答案:

答案 0 :(得分:1)

也许你可以使用这个框架:

http://jtestcase.sourceforge.net

答案 1 :(得分:1)

  

为每个人编写125个setter   单元测试用例。

您需要测试辅助方法来处理测试数据。然后你调用填充TO的适当方法:它可以是0个参数(完全随机/固定,不是测试驱动)或多达125个(完全由测试控制)(以及介于两者之间的任何东西)。

无论哪种方式都不再在测试中使用。

答案 2 :(得分:1)

我不确定Java单元测试框架。但在DotNet中有一个名为NBuilder的库,它可以帮助您轻松快速地创建测试数据。这是我写的blog来证明它的能力。

可能您可以尝试查看是否存在NBuilder的Java替代方案,或者Java中是否存在相同的端口。我找到的大多数DotNet库都是从Java世界移植过来的,比如NHibernate,Spring.Net等。所以我的猜测是你也可能有一个类似于NBuilder的Java。