javascript
junit 引入spring 注解管理_第05章 Spring 整合 Junit
3.1 測(cè)試類(lèi)中的問(wèn)題和解決思路
3.1.1 問(wèn)題
在測(cè)試類(lèi)中,每個(gè)測(cè)試方法都有以下兩行代碼:
ApplicationContext這兩行代碼的作用是獲取容器,如果不寫(xiě)的話,直接會(huì)提示空指針異常。所以又不能輕易刪掉。
3.1.2 解決思路分析
針對(duì)上述問(wèn)題,我們需要的是程序能自動(dòng)幫我們創(chuàng)建容器。一旦程序能自動(dòng)為我們創(chuàng)建 spring 容器,我們就 無(wú)須手動(dòng)創(chuàng)建了,問(wèn)題也就解決了。 我們都知道,junit 單元測(cè)試的原理(在 web 階段課程中講過(guò)),但顯然,junit 是無(wú)法實(shí)現(xiàn)的,因?yàn)樗?己都無(wú)法知曉我們是否使用了 spring 框架,更不用說(shuō)幫我們創(chuàng)建 spring 容器了。不過(guò)好在,junit 給我們暴露 了一個(gè)注解,可以讓我們替換掉它的運(yùn)行器。 這時(shí),我們需要依靠 spring 框架,因?yàn)樗峁┝艘粋€(gè)運(yùn)行器,可以讀取配置文件(或注解)來(lái)創(chuàng)建容器。我 們只需要告訴它配置文件在哪就行了。
3.2 配置步驟
3.2.1 第一步:拷貝整合 junit 的必備 jar 包到 lib 目錄
此處需要注意的是,導(dǎo)入 jar 包時(shí),需要導(dǎo)入一個(gè) spring 中 aop 的 jar 包。
3.2.2 第二步:使用@RunWith 注解替換原有運(yùn)行器
/**3.2.3 第三步:使用@ContextConfiguration 指定 spring 配置文件的位置
/**@ContextConfiguration 注解:
locations 屬性:用于指定配置文件的位置。如果是類(lèi)路徑下,需要用 classpath:表明
classes 屬性:用于指定注解的類(lèi)。當(dāng)不使用 xml 配置時(shí),需要用此屬性指定注解類(lèi)的位置。
@ContextConfiguration 注解: locations 屬性:用于指定配置文件的位置。如果是類(lèi)路徑下,需要用 classpath:表明 classes 屬性:用于指定注解的類(lèi)。當(dāng)不使用 xml 配置時(shí),需要用此屬性指定注解類(lèi)的位置。
3.2.4 第四步:使用@Autowired 給測(cè)試類(lèi)中的變量注入數(shù)據(jù)
/**3.3 為什么不把測(cè)試類(lèi)配到 xml 中
在解釋這個(gè)問(wèn)題之前,先解除大家的疑慮,配到 XML 中能不能用呢? 答案是肯定的,沒(méi)問(wèn)題,可以使用。 那么為什么不采用配置到 xml 中的方式呢? 這個(gè)原因是這樣的: 第一:當(dāng)我們?cè)?xml 中配置了一個(gè) bean,spring 加載配置文件創(chuàng)建容器時(shí),就會(huì)創(chuàng)建對(duì)象。 第二:測(cè)試類(lèi)只是我們?cè)跍y(cè)試功能時(shí)使用,而在項(xiàng)目中它并不參與程序邏輯,也不會(huì)解決需求上的問(wèn) 題,所以創(chuàng)建完了,并沒(méi)有使用。那么存在容器中就會(huì)造成資源的浪費(fèi)。 所以,基于以上兩點(diǎn),我們不應(yīng)該把測(cè)試配置到 xml 文件中。
總結(jié)
以上是生活随笔為你收集整理的junit 引入spring 注解管理_第05章 Spring 整合 Junit的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: matlab gpu deep lear
- 下一篇: gradle idea java ssm