Junit DAO层测试中如何模拟序列

Junit DAO层测试中如何模拟序列,junit,tdd,dao,spring-test,Junit,Tdd,Dao,Spring Test,我有spring+hibernate项目,我想为DAO层编写单元测试用例, 目前我正在使用HSqldb的内存数据库来测试它。(我提及) 在项目中,ID是由序列提供的,正如我在内存数据库中使用的一样,在测试过程中,序列不显示,所以它正在下降。为了解决这个问题,我创建了一组不同的没有序列的hbm文件(并将它们放在测试的资源文件夹中)。有没有更好的方法来处理这个问题,因为保留重复的hbm文件对我来说确实不错。任何建议都将不胜感激保存HBM文件的完整副本听起来不是一个好主意(我坚信的原则之一是)。 我建

我有spring+hibernate项目,我想为DAO层编写单元测试用例, 目前我正在使用HSqldb的内存数据库来测试它。(我提及)


在项目中,ID是由序列提供的,正如我在内存数据库中使用的一样,在测试过程中,序列不显示,所以它正在下降。为了解决这个问题,我创建了一组不同的没有序列的hbm文件(并将它们放在测试的资源文件夹中)。有没有更好的方法来处理这个问题,因为保留重复的hbm文件对我来说确实不错。任何建议都将不胜感激

保存HBM文件的完整副本听起来不是一个好主意(我坚信的原则之一是)。 我建议的解决方案(除非Hibernate方面有更好的解决方案)是在“@before”方法中编辑HBM文件,以便只更改不同的位。
我更喜欢.Net,我知道在.Net中有一个名为的库,它允许在运行时生成(我假设它也可以编辑现有的)hbm。我不确定Java中是否有类似的东西,但您也可以回退,将hbm作为XML文件进行操作。

如果您需要测试数据库中的序列,只需创建它即可

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

有关详细信息,请参阅以下相关问题: