spring JUnit 基本原理
Spring test framework 主要位於 org.Springframework.test.context 包中,主要包括下面幾個類:
- TestContextManager:主要的入口類,提供 TestContext 例項的管理,負責根據各種事件來通知測試監聽器
- TestContext:實體類,提供訪問 Spring applicatoin context 的能力,並負責快取applicationContext
- TestExecutionListener:測試監聽器,提供依賴注入、applicationContext 快取和事務管理等能力
- ContextLoader:負責根據配置載入 Spring 的 bean 定義,以構建 applicationContext 例項物件
- SmartContextLoader:Spring 3.1 引入的新載入方法,支援按照 profile 載入
Spring 通過 AOP hook 了測試類的例項建立、beforeClass、before、after、afterClass 等事件入口,執行順序主要如下:
- 測試執行者開始執行測試類,這個時候 Spring 獲取訊息,自動建立 TestContextManager 例項
- TestContextManager 會建立 TestContext,以記錄當前測試的上下文資訊,TestContext 則通過ContextLoader 來獲取 Spring ApplicationContext 例項
- 當測試執行者開始執行測試類的 BeforeClass、Before、After、AfterClass
的時候,TestContextManager 將截獲事件,發通知給對應的 TestExecutionListener
轉載自:使用 Spring 進行單元測試
相關文章
- Spring整合JUnitSpring
- Spring的Junit整合Spring
- Spring整合JUnit,MybatisSpringMyBatis
- Spring和JUnit的整合Spring
- Spring是如何整合JUnit的?JUnit原始碼關聯延伸閱讀Spring原始碼
- Spring 對 Junit4,Junit5 的支援上的運用Spring
- Spring IOC容器基本原理Spring
- JF +Spring 4 +JUNIT4 測試?Spring
- Spring Test 整合 JUnit 4 使用總結Spring
- 【學習筆記】Spring與Junit的整合筆記Spring
- Spring Boot + Junit 5 + Testcontainers原始碼專案Spring BootAI原始碼
- Spring單元測試教程(JUnit5+Mockito)SpringMockito
- Spring系列之新註解配置+Spring整合junit+註解注入Spring
- spring測試父類,使用junit-4.4.jar,spring-test.jarSpringJAR
- junit
- junit 4
- Spring系列:程式包org.junit.jupiter.api不存在SpringAPI
- Spring+MyBatis+JUnit整合測試的搭建過程總結SpringMyBatis
- junit 使用JUnit測試預期異常
- JUnit3.8的Junit單元測試.
- Junit5系列-什麼是Junit5?
- springboot junit Unit-Testing(via spring-boot-starter-test)Spring Boot
- junit基礎
- JUnit basic annotation
- Junit-12
- JUnit的疑惑
- JUnit入門
- 如何下載Junit並在eclipse上配置JunitEclipse
- 使用android studio 建立app時報錯:Could not download junit.jar(junit:junit:4.12)AndroidAPPJAR
- Junit5系列-Junit5中Assertions斷言類
- Junit5系列-Junit5中Assumptions假設類
- Junit5系列-Junit5中@Disabled禁止執行
- JUnit使用總結
- JUnit備忘錄
- JUnit —— TestSuite 的使用UI
- JUnit4教程
- JUnit使用經驗
- JUnit最佳實現