在DirtiesContext没有表之后进行测试

时间:2018-10-05 07:48:14

标签: java database spring-boot spring-data-jpa spring-test

Spring Boot Parent-2.0.5.RELEASE

我按顺序进行了几次集成测试:

  1. 测试类,该类使用@MockBean批注进行某些依赖,因此我在类上获得了@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
  2. 另一个使用db的测试类(假设使用h2中的JpaRepository进行选择,该选择由spring完全管理)

第一次测试通过,但是第二次有例外: Caused by: org.hibernate.exception.SQLGrammarException: could not prepare statement Caused by: org.h2.jdbc.JdbcSQLException: Table "x" not found; SQL statement:

似乎db已创建,但DDL尚未完成。

我该如何解决这个问题?

可以肯定的是,我可以在第二个测试中添加注释@AutoConfigureTestDatabase,但是我觉得在使用@DirtiesContext进行测试后使用db的每个测试类上添加此注释是错误的。

0 个答案:

没有答案