簡體   English   中英

DataJpaTest注解用法[Spring-boot]

[英]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 注解

  1. 允許您測試域邏輯,以便您可以檢查 JPA 映射和查詢
  2. 它還配置 Hibernate、Spring Data 和內存數據庫。
  3. 如果您想重用真實的數據庫,您可以覆蓋內存數據庫。
  4. 它還提供對 TestEntityManager bean 的訪問。 這是常規實體管理器的替代方案,它僅提供一些您經常想在測試中使用的便捷方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM