我使用HSQLDB进行JUnit单元测试一组 hibernate 类和查询。在每个测试的setUp()
调用中,我使用测试类和测试用例的名称初始化内存中的hsql数据库(通过hibernate)来组成内存中db实例的连接字符串。但在我的第二次测试中,ID序列似乎从第一次测试开始。我希望我的测试显然是完全独立的,所以这让我感到惊讶。我正在使用@GeneratedValue(strategy = GenerationType.AUTO)
作为我的身份证明。我想要的开发和生产数据库是mysql或postgresql,但这不应该在这里。
更新 我尝试了一个较小的测试用例,结果证明我错了。我确实在secodn测试中创建了更多实体,这导致了不同的id。我的坏了!
答案 0 :(得分:0)
可能只有在应用程序终止后才会删除HSQLDB内存数据库。
您可以在每个测试类之前进行事务处理,并在测试类完成时回滚它。