Cactus
是Jakarta的子項(xiàng)目之一,是對(duì)JUnit的一個(gè)擴(kuò)展。Catus是Java EE容器內(nèi)測(cè)試的事實(shí)標(biāo)準(zhǔn)。
Cactus是針對(duì)集成單元測(cè)試的開源框架。可以在容器內(nèi)對(duì)JAVA EE服務(wù)器端組件(如JSP,Servlet,EJB,數(shù)據(jù)庫(kù)等)進(jìn)行細(xì)粒度的單元測(cè)試。
Cactus測(cè)試的生命周期
Cactus測(cè)試會(huì)創(chuàng)建兩個(gè)TestCase,一個(gè)在客戶端,另一個(gè)在服務(wù)器端。兩個(gè)TestCase分別由各自的TestRunner執(zhí)行。還有創(chuàng)建一個(gè)proxy redirector對(duì)象,這個(gè)對(duì)象實(shí)現(xiàn)了Cactus的邏輯。
Cactus測(cè)試分為在客戶端JVM和服務(wù)器端JVM(也就是在容器內(nèi))兩個(gè)方面的測(cè)試。
第一步 - 執(zhí)行begin
XXX
??????這一步是在
客戶端
中運(yùn)行。
??????當(dāng)存在begin
XXX
方法時(shí),將自動(dòng)執(zhí)行。這個(gè)方法的作用是準(zhǔn)備提供給服務(wù)端redirector的信息。傳遞的信息是HTTP相關(guān)參數(shù),比如HTTP報(bào)文頭部,cookie等等。也就是設(shè)置這個(gè)測(cè)試需要的一些參數(shù)。
??????這是在客戶端TestCase創(chuàng)建后調(diào)用。
第二步 - 打開redirector連接
??????這一步就是服務(wù)器和客戶端進(jìn)行連接。在第一步中準(zhǔn)備的一些參數(shù)在這一步傳遞給服務(wù)器端的redirector。當(dāng)然這是在Cactus的redirector對(duì)象創(chuàng)建后執(zhí)行。
第三步 - 創(chuàng)建服務(wù)器端的TestCase實(shí)例
??????這一步是在
服務(wù)器端
執(zhí)行。
??????redirector對(duì)象會(huì)創(chuàng)建一個(gè)服務(wù)器端的TestCase實(shí)例。獲得容器對(duì)象后通過(guò)設(shè)置類變量賦給TestCase實(shí)例。
第四步 - 在服務(wù)器端進(jìn)行測(cè)試
??????在服務(wù)器端啟動(dòng)測(cè)試,調(diào)用JUnit的一系列方法(setUp,test
XXX
,tearDown等),并把測(cè)試結(jié)果保存到一個(gè)ServletConfig servlet對(duì)象中。
第五步 - 執(zhí)行end
XXX
?
??????這一步是在客戶端在獲得來(lái)自redirector的響應(yīng)后執(zhí)行。
??????執(zhí)行這個(gè)方法,作用是對(duì)比測(cè)試結(jié)果是否與預(yù)期相同,也就是對(duì)獲得的測(cè)試結(jié)果進(jìn)行斷言。
第六步 - 收集測(cè)試結(jié)果
??????這一步就是把服務(wù)端的測(cè)試結(jié)果返回到客戶端。
??????在Cactus生命周期的最后,總結(jié)客戶端的測(cè)試所得的返回信息(第五步)和服務(wù)端中執(zhí)行的結(jié)果(第四步),運(yùn)行TestRunner把測(cè)試結(jié)果顯示出來(lái)。到此Cactus完成任務(wù)。
???以上的Cactus的生命周期,測(cè)試驅(qū)動(dòng)開發(fā)過(guò)程中不必關(guān)注,其中的復(fù)雜性被封裝在Cactus框架中。對(duì)于開發(fā)者只需擴(kuò)展Cactus中的 TestCase(如JSPTestCase,ServletTestCase等等),在其中編寫初始化方法設(shè)置參數(shù),測(cè)試方法即可。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
