我的测试扩展了AbstractTransactionalSpringContextTests
,现已弃用。我使用的是setComplete
,endTransaction
和startNewTransaction
。
这些的替代用途是什么?
答案 0 :(得分:0)
对于简单的使用案例,您可以使用@Transactional
和@Commit
。如果测试方法使用@Transactional
注释,则测试方法将在事务内执行,并且在测试运行后将执行回滚。 @Commit
阻止执行此回滚(类似于setComplete
)。您可以在测试类上使用@Transactional
来执行事务中的每个测试方法。
如果您需要更细粒度的控制,请结合AbstractTransactionalJUnit4SpringContexTest
与TestTransaction
中的静态方法一起使用。 Spring Documentation有一个很好的例子,说明如何使用TestTransaction
来启动和结束事务,或者为提交标记它们。使用AbstractTransactionalJUnit4SpringContexTest
时,您需要记住它已经在类级别上使用@Transactional
进行了注释。