【问题标题】:Unitils/DbUnit: How to test in a multi-database environment?Unitils/DbUnit:如何在多数据库环境中进行测试?
【发布时间】:2012-09-06 09:40:57
【问题描述】:

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

我看到以下替代方案:

  1. 将每个 *DaoTest 与单独的 unitils.properties 文件相关联,该文件将保存此 DAO 数据库的配置。有可能吗?
  2. 为每个数据库都有一个单独的测试项目(保存该数据库的 *DaoTests 和一个带有数据库凭据的 unitils.properties 文件)

还有其他想法吗?

【问题讨论】:

    标签: dbunit multiple-databases unitils


    【解决方案1】:

    希望您在最初询问后的 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"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-26
      • 2011-05-14
      • 1970-01-01
      • 2012-05-29
      • 2015-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多