在JUnit中获取当前的Spring事务并提交它

Mik*_*ail 1 java junit spring jpa transactions

是否可以在JUnit中获取当前的Spring事务?

我想在DAO中测试JPA.DAO没有交易.在测试中,spring为每个方法创建事务.我希望在测试过程中将事务提交到某个地方.需要它来测试DB状态.我发现的唯一解决方案是为每个方法创建@Rule.

Ali*_*ani 9

您可以使用TestTransaction它来管理弹簧测试事务:

TestTransaction.flagForCommit();
TestTransaction.end();
Run Code Online (Sandbox Code Playgroud)

这将标记当前事务commit并结束它.之后,您可以TestTransaction.start()用来开始新的交易.