[英]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.