我正在将项目从Spring框架转换为Spring boot,因此不再使用持久性文件和其他配置文件。
此外,我放弃了使用实体管理器,而是创建了扩展JPA存储库的存储库,以便可以从那里使用功能。唯一的是,我有一些单元测试,并且在Spring框架中,每个测试的末尾都有一个带有回滚的finally子句,以便数据库中的数据特定于每个测试。 没有实体管理器怎么办?我尝试使用flush()方法,但没有结果...
答案 0 :(得分:0)
默认情况下,数据JPA测试是事务性的,并在每次测试结束时回滚。
您可以参考弹簧测试文档中的Enabling and Disabling Transactions,其中指出:
使用@Transactional注释测试方法会导致测试在事务中运行,默认情况下,该事务在测试完成后会自动回滚。如果用@Transactional注释测试类,则该类层次结构中的每个测试方法都在事务中运行。未使用@Transactional注释的测试方法(在类或方法级别)不在事务内运行。此外,用@Transactional注释但传播类型设置为NOT_SUPPORTED的测试不在事务内运行。
提示:
@Commit
批注或更不恰当地使用@Rollback(false)
。