我想給大家介紹一款非常實用、且高端大氣上檔次的spring測試,在這里,我要強烈推薦使用Spring的Test Context框架,為什么呢?俗話說,“貨比三家不上當”,要搞清楚這個問題,我們先來看一看傳統的Spring測試:

傳統的Spring測試
我們開發一個Spring的HelloWorld。
第一步:准備開發Spring依賴的jar包

第二步:定義一個簡單的POJO類:HelloWorld,如下:

第三步:閱讀Spring中幫助文檔(xsd-config.html),編寫配置文件:applicationContext.xml:

第四步:引入junit4.x的單元測試環境(),編寫Spring的測試類:HelloTest,如下。

運行測試類,輸出結果:

傳統Spring測試帶來的問題
- 問題一、導致Spring 容器多次初始化,性能開銷很大。
- 問題二、不應該由測試代碼管理Spring容器,應該是由Spring容器來管理測試代碼。
- 問題三、無法獨立於服務器完成事務測試等。
傳統的Spring測試(如下圖):
正確的Spring測試(如下圖):
Spring Test的優勢
- 使用Spring Test 有助於減少啟動容器的開銷,提高測試效率。
- Spring Test可以直接使用@AutoWired注入Spring容器或bean。
- Spring Test還支持事務測試,集成測試等。
搭建Spring的Test環境
步驟一、依賴jar:
Spring4.x需要依賴的單元測試得是最新的junit4.12,Eclipse自帶的junit4.8不支持,同時從Spring4.x開始,還得依賴AOP包的支持。

重新准備測試的配置文件:

步驟二、Spring測試使用到的三個注解:
①:@RunWith:表示先啟動Spring容器,把junit運行在Spring容器中;
②:@ContextConfiguration("classpath:applicationContext.xml"):
表示從CLASSPATH路徑去加載資源文件;
③:@Autowired:表示自動裝配,自動從Spring容器中取出對應bean或者獲取容器對象;

若,省略@ContextConfiguration的屬性內容,如下:

則默認去找:當前測試類名-context.xml配置文件,如:HelloWorldTest-context.xml。


