我正在使用Unitils(使用DbUnit)进行数据访问层单元测试,但是需要测试多个数据库。最好的方法是什么? 数据库是不同的,因此一些DAO用于一个数据库,另一个DAO用于另一个数据库。
我看到以下替代方案:
还有其他想法吗?
答案 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"
。