Sprint Boot學習路線6

測試
Spring提供了一組測試工具,可以輕松地測試Spring應用程序的各個組件,包括控制器、服務、存儲庫和其他組件。它具有豐富的測試注釋、實用程序類和其他功能,以幫助進行單元測試、集成測試等。
JPA測試
Spring JPA(Java Persistence API)是一個庫,它使在Spring應用程序中使用數(shù)據(jù)庫和其他數(shù)據(jù)存儲變得容易。Spring JPA使用Java持久化API(JPA)與數(shù)據(jù)庫交互,并提供一個抽象層來處理不同的數(shù)據(jù)存儲。
在Spring JPA中進行測試涉及測試應用程序的持久層,其中包括與數(shù)據(jù)庫交互的實體、存儲庫和數(shù)據(jù)訪問對象(DAO)。將這些組件與應用程序的其余部分分開測試有助于確保持久層正常工作,并且可以識別和解決任何問題,而不會影響應用程序的其余部分。
使用Spring JPA測試持久層有幾種方法。一種方法是使用內存數(shù)據(jù)庫,例如H2或Derby,這些數(shù)據(jù)庫可以在測試期間用于模擬生產(chǎn)數(shù)據(jù)庫。這樣可以使測試快速運行,并消除設置單獨的測試數(shù)據(jù)庫的需要。另一種方法是使用真實的數(shù)據(jù)庫,并使用TestContainers為測試目的啟動數(shù)據(jù)庫的實例。
Spring Test模塊提供不同的注釋,例如@DataJpaTest和@AutoConfigureTestDatabase,這些注釋有助于測試JPA特定的功能。
此外,Spring提供了JPA測試實用程序,它提供了一組實用程序類和注釋,以便輕松測試基于JPA的持久層,例如**@DataJpaTest
,@AutoConfigureTestDatabase
**和TestEntityManager類。這些實用程序可用于創(chuàng)建、讀取、更新和刪除實體,執(zhí)行JPA查詢并在測試期間與數(shù)據(jù)庫交互。
將持久層與應用程序的其余部分分開進行測試,可以在開發(fā)過程的早期捕獲任何問題,從而輕松識別和修復錯誤,并提高應用程序的質量。
模擬MVC
Spring的MockMvc是一個類,允許您在不需要實際Web服務器的情況下測試Spring MVC控制器。 它是Spring Test模塊的一部分,該模塊為Spring應用程序提供了一組測試實用程序。
@SpringBootTest 注解
@SpringBootTest注解用于創(chuàng)建一個完全配置的Spring ApplicationContext實例,以進行測試。它可用于在實際應用程序環(huán)境中測試應用程序的組件,包括控制器,服務和存儲庫。
@MockBean 注解
MockBean
是Spring注解之一,可以用于在Spring應用程序上下文中創(chuàng)建bean的模擬實現(xiàn)。當測試用例用@MockBean進行注解時,Spring會創(chuàng)建指定bean的模擬實現(xiàn)并將其添加到應用程序上下文中??梢栽跍y試期間使用模擬bean來替換真正的bean。