2

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

我看到以下替代方案:

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

还有其他想法吗?

4

1 回答 1

0

希望您在最初询问后的 6 年内找到了这个问题的答案 :)

我最近发现自己遇到了同样的问题并以这种方式解决了它:

unittils.properties为每个 DAO 使用了一个,它定义了我的项目需要测试的每个数据源。在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属性中的第一个数据库设置为默认值。因此,您可以选择xmlns="DATABASE_1"在数据集的 xml 文件中省略 。

于 2018-11-02T19:34:14.573 回答