Unitils / DbUnit:如何在多数据库环境中进行测试?

时间:2012-09-06 09:40:58

标签: dbunit multiple-databases unitils

我正在使用Unitils(使用DbUnit)进行数据访问层单元测试,但是需要测试多个数据库。最好的方法是什么? 数据库是不同的,因此一些DAO用于一个数据库,另一个DAO用于另一个数据库。

我看到以下替代方案:

  1. 将每个* DaoTest与一个单独的unitils.properties文件相关联,该文件将保存此DAO数据库的配置。它甚至可能吗?
  2. 为每个数据库设置一个单独的测试项目(使用数据库的凭据保存此数据库的* DaoTests和unitils.properties文件)
  3. 还有其他想法吗?

1 个答案:

答案 0 :(得分:0)

希望您在最初提出问题的6年内就找到了答案:)

我最近发现自己也遇到了同样的问题,并通过以下方式解决了该问题:

我为每个DAO使用了一个unittils.properties,它定义了我的项目需要测试的每个数据源。在unittils.properties文件中,我定义了一个database.schemaNames=DATABASE_1, DATABASE_2属性。

然后,您可以修改数据集定义,使其看起来像这样:

<?xml version='1.0' encoding='UTF-8'?>
<dataset xmlns="DATABASE_1" xmlns:b="DATABASE_2">
    <some_table />
    <b:some_other_table />

    <some_table attr_1="foo" attr_2="bar" />
    <b:some_other_table other_attr="baz" />
</dataset>

请注意,将假设some_table生活在DATABASE_1中。这是因为unittils将database.schemaNames属性中的第一个数据库设置为默认数据库。因此,您可以选择省略数据集xml文件中的xmlns="DATABASE_1"