40.3.8 自动配置的Data JPA测试
你可以使用@DataJpaTest
测试JPA应用,它默认配置一个内存型的内嵌数据库,扫描@Entity
类,并配置Spring Data JPA仓库,其他常规的@Component
beans不会加载进ApplicationContext
。
Data JPA测试类是事务型的,默认在每个测试结束后回滚,具体查看Spring参考文档的相关章节。如果这不是你想要的结果,可以通过禁用事务管理器来改变:
Data JPA测试类可能会注入一个专为测试设计的[TestEntityManager](https://github.com/spring-projects/spring-boot/tree/v1.4.1.RELEASE/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/orm/jpa/TestEntityManager.java)
bean以替换标准的JPA EntityManager
。如果想在@DataJpaTests
外使用TestEntityManager
,你可以使用@AutoConfigureTestEntityManager
注解。如果需要,JdbcTemplate
也是可用的。
对于测试来说,内存型的内嵌数据库通常是足够的,因为它们既快又不需要任何安装。如果比较喜欢在真实数据库上运行测试,你可以使用@AutoConfigureTestDatabase
注解:
在附录中可以查看@DataJpaTest
开启的自动配置列表。
Last updated
Was this helpful?