溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SSM框架中測(cè)試單元如何使用spring整合Junit

發(fā)布時(shí)間:2021-08-09 11:29:08 來源:億速云 閱讀:111 作者:小新 欄目:編程語言

這篇文章主要介紹了SSM框架中測(cè)試單元如何使用spring整合Junit,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

測(cè)試類中的問題和解決思路

問題

在測(cè)試類中,每個(gè)測(cè)試方法都有以下兩行代碼:

ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml"); 

IAccountService as = ac.getBean("accountService",IAccountService.class);

這兩行代碼的作用是獲取容器,如果不寫的話,直接會(huì)提示空指針異常。所以又不能輕易刪掉。

解決思路分析

針對(duì)上述問題,我們需要的是程序能自動(dòng)幫我們創(chuàng)建容器。一旦程序能自動(dòng)為我們創(chuàng)建 spring 容器,我們就無須手動(dòng)創(chuàng)建了,問題也就解決了。

我們都知道,junit 單元測(cè)試的原理(在 web 階段課程中講過),但顯然,junit 是無法實(shí)現(xiàn)的,因?yàn)樗约憾紵o法知曉我們是否使用了 spring 框架,更不用說幫我們創(chuàng)建 spring 容器了。不過好在,junit 給我們暴露了一個(gè)注解,可以讓我們替換掉它的運(yùn)行器。

這時(shí),我們需要依靠 spring 框架,因?yàn)樗峁┝艘粋€(gè)運(yùn)行器,可以讀取配置文件(或注解)來創(chuàng)建容器。我們只需要告訴它配置文件在哪就行了。

配置步驟

第一步:拷貝整合 junit的必備 jar包到 lib目錄

此處需要注意的是,導(dǎo)入 jar 包時(shí),需要導(dǎo)入一個(gè) spring 中 aop 的 jar 包。

第二步:使用@RunWith注解替換原有運(yùn)行器

/**
* 測(cè)試類
* @Version 1.0
*/ @RunWith(SpringJUnit4ClassRunner.class) public class AccountServiceTest {
}

第三步:使用@ContextConfiguration指定 spring配置文件的位置

/**
*/ @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:bean.xml"})
public class AccountServiceTest {
}

@ContextConfiguration 注解:

locations 屬性:用于指定配置文件的位置。如果是類路徑下,需要用 classpath:表明classes 屬性:用于指定注解的類。當(dāng)不使用 xml 配置時(shí),需要用此屬性指定注解類的位置。

第四步:使用@Autowired給測(cè)試類中的變量注入數(shù)據(jù)

/**
*/ @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:bean.xml"})
public class AccountServiceTest {
@Autowired
private IAccountService as ;
}

為什么不把測(cè)試類配到 xml中

在解釋這個(gè)問題之前,先解除大家的疑慮,配到 XML 中能不能用呢? 答案是肯定的,沒問題,可以使用。

那么為什么不采用配置到 xml 中的方式呢? 這個(gè)原因是這樣的:

第一:當(dāng)我們?cè)?xml 中配置了一個(gè) bean,spring 加載配置文件創(chuàng)建容器時(shí),就會(huì)創(chuàng)建對(duì)象。

第二:測(cè)試類只是我們?cè)跍y(cè)試功能時(shí)使用,而在項(xiàng)目中它并不參與程序邏輯,也不會(huì)解決需求上的問題,所以創(chuàng)建完了,并沒有使用。那么存在容器中就會(huì)造成資源的浪費(fèi)。

所以,基于以上兩點(diǎn),我們不應(yīng)該把測(cè)試配置到 xml 文件中。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“SSM框架中測(cè)試單元如何使用spring整合Junit”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI