【发布时间】:2016-09-26 09:02:18
【问题描述】:
在我的 Spring 项目中,我使用 JUnit4 运行某些测试用例。我使用@Transactional 删除在测试用例期间对数据库所做的任何更改,以便新测试用例获得相同的初始数据库状态。问题是,在我的一个测试用例中,我在数据库中插入了一些值,然后在同一个测试中再次使用它们。看起来@Transactional 甚至在测试用例完成之前就删除了条目,因此我的测试没有按预期运行。我该如何解决这个问题?
是这样的
@Test()
@Transactional
// Add entries to db and do some asserts
// Use those entries to do some more asserts
}
第二部分不起作用,因为条目已经消失。有人可以帮忙吗。提前致谢!!
【问题讨论】:
-
您是否尝试过调试问题?您确定事务在方法返回之前回滚了吗?您自己的方法之一是否有可能称为删除?
-
根据你的代码,好像和
@Transactional没有关系 -
@TheLostMind 我尝试在没有事务注释的情况下单独运行测试用例,并且测试用例按预期运行。我不会包括 Transactional 但类中还有其他测试用例会受到影响。我不认为我的任何方法都称为删除,因为在这种情况下,如果没有 Transactional,它也将无法工作。谢谢!!
-
@passion 我尝试在没有事务注释的情况下单独运行测试用例,并且测试用例按预期运行。所以我猜它与事务注释有关。谢谢!!