如何在DAO层测试期间模拟序列

时间:2015-05-13 10:35:55

标签: junit tdd dao spring-test

我有spring + hibernate项目,我想为DAO层编写单元测试用例, 目前我在内存DB中使用HSqldb进行测试。 (我提到this

在项目中,ID由序列提供,因为我使用的是内存中的DB,在测试序列期间不存在因此它正在下降,为了解决方法,我创建了不同的hbm文件集而没有序列(并将它们放在测试中)资源文件夹)。有没有更好的方法来处理这个,因为保持重复的hbm文件对我来说确实很好。任何建议将不胜感激

2 个答案:

答案 0 :(得分:1)

如果您需要在测试数据库中使用序列,只需创建它。

另外,请确保使用Hibernate配置了正确的数据库方言。

详情请参阅以下相关问题:

答案 1 :(得分:0)

持有HBM文件的完整副本并不是一个好主意(我坚信的原则之一是the "DRY" principle)。 我建议的解决方案(除非Hibernate方面有更好的解决方案)是在" @之前编辑HBM文件"方法,以便只改变不同的位。 我更像是一个.Net的人,我知道在In .Net中有一个名为FluentNHibernate的库,它允许在运行时生成(我假设也编辑现有的)hbm。我不确定Java中是否存在类似的东西,但您也可以将hbm作为XML文件进行操作。