HSQLDB独立于单元测试

时间:2012-02-11 12:43:24

标签: java hibernate unit-testing junit hsqldb

我使用HSQLDB进行JUnit单元测试一组 hibernate 类和查询。在每个测试的setUp()调用中,我使用测试类和测试用例的名称初始化内存中的hsql数据库(通过hibernate)来组成内存中db实例的连接字符串。但在我的第二次测试中,ID序列似乎从第一次测试开始。我希望我的测试显然是完全独立的,所以这让我感到惊讶。我正在使用@GeneratedValue(strategy = GenerationType.AUTO)作为我的身份证明。我想要的开发和生产数据库是mysql或postgresql,但这不应该在这里。

更新 我尝试了一个较小的测试用例,结果证明我错了。我确实在secodn测试中创建了更多实体,这导致了不同的id。我的坏了!

1 个答案:

答案 0 :(得分:0)

可能只有在应用程序终止后才会删除HSQLDB内存数据库。

您可以在每个测试类之前进行事务处理,并在测试类完成时回滚它。