[英]DataJpaTest annotation usage[Spring-boot]
测试时@DataJpaTest 注释的用法是什么? 我们每个数据库连接测试都需要它吗?
即使没有注释,测试也能正常工作
@RunWith(SpringRunner.class)
@DataJpaTest
为什么使用@DataJpaTest 为什么使用它以及何时使用它?
默认情况下, @DataJpaTest
将配置内存嵌入式数据库,扫描@Entity
类并配置 Spring Data JPA 存储库。 在每次测试结束时,它也是事务性的和回滚的。 如果我们想禁用事务管理,我们可以使用:
@Transactional(propagation = Propagation.NOT_SUPPORTED)
我们还可以注入一个专门为测试设计的 TestEntityManager bean,它是 JPA EntityManager 的替代品。
@Autowired
private TestEntityManager entityManager;
因此,我们的测试类应该类似于:
@RunWith(SpringRunner.class)
@DataJpaTest
public class MyJPAUnitTest extends SpringJpaUnitTestApplicationTests {
@Autowired
private TestEntityManager entityManager;
@Autowired
CustomerRepository repository;
@Test
public void testExample() {...}
}
更多细节在这里: https : //grokonez.com/testing/datajpatest-with-spring-boot
使用@DataJpaTest 注解
- 允许您测试域逻辑,以便您可以检查 JPA 映射和查询
- 它还配置 Hibernate、Spring Data 和内存数据库。
- 如果您想重用真实的数据库,您可以覆盖内存数据库。
- 它还提供对 TestEntityManager bean 的访问。 这是常规实体管理器的替代方案,它仅提供一些您经常想在测试中使用的便捷方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.