軟件絕對領(lǐng)域

          Cactus工作原理

          Cactus是Jakarta的子項(xiàng)目之一,是對JUnit的一個擴(kuò)展。Catus是Java EE容器內(nèi)測試的事實(shí)標(biāo)準(zhǔn)。

          Cactus是針對集成單元測試的開源框架。可以在容器內(nèi)對JAVA EE服務(wù)器端組件(如JSP,Servlet,EJB,數(shù)據(jù)庫等)進(jìn)行細(xì)粒度的單元測試。

          o_Cactus生命周期.jpg
          Cactus測試的生命周期

          Cactus測試會創(chuàng)建兩個TestCase,一個在客戶端,另一個在服務(wù)器端。兩個TestCase分別由各自的TestRunner執(zhí)行。還有創(chuàng)建一個proxy redirector對象,這個對象實(shí)現(xiàn)了Cactus的邏輯。

          Cactus測試分為在客戶端JVM和服務(wù)器端JVM(也就是在容器內(nèi))兩個方面的測試。

          第一步 - 執(zhí)行beginXXX
                這一步是在客戶端中運(yùn)行。
                當(dāng)存在beginXXX方法時,將自動執(zhí)行。這個方法的作用是準(zhǔn)備提供給服務(wù)端redirector的信息。傳遞的信息是HTTP相關(guān)參數(shù),比如HTTP報文頭部,cookie等等。也就是設(shè)置這個測試需要的一些參數(shù)。
                這是在客戶端TestCase創(chuàng)建后調(diào)用。

          第二步 - 打開redirector連接
                這一步就是服務(wù)器和客戶端進(jìn)行連接。在第一步中準(zhǔn)備的一些參數(shù)在這一步傳遞給服務(wù)器端的redirector。當(dāng)然這是在Cactus的redirector對象創(chuàng)建后執(zhí)行。

          第三步 - 創(chuàng)建服務(wù)器端的TestCase實(shí)例
                這一步是在服務(wù)器端執(zhí)行。
                redirector對象會創(chuàng)建一個服務(wù)器端的TestCase實(shí)例。獲得容器對象后通過設(shè)置類變量賦給TestCase實(shí)例。

          第四步 - 在服務(wù)器端進(jìn)行測試
                在服務(wù)器端啟動測試,調(diào)用JUnit的一系列方法(setUp,testXXX,tearDown等),并把測試結(jié)果保存到一個ServletConfig servlet對象中。

          第五步 - 執(zhí)行endXXX 
                這一步是在客戶端在獲得來自redirector的響應(yīng)后執(zhí)行。
                執(zhí)行這個方法,作用是對比測試結(jié)果是否與預(yù)期相同,也就是對獲得的測試結(jié)果進(jìn)行斷言。

          第六步 - 收集測試結(jié)果
                這一步就是把服務(wù)端的測試結(jié)果返回到客戶端。
                在Cactus生命周期的最后,總結(jié)客戶端的測試所得的返回信息(第五步)和服務(wù)端中執(zhí)行的結(jié)果(第四步),運(yùn)行TestRunner把測試結(jié)果顯示出來。到此Cactus完成任務(wù)。

             以上的Cactus的生命周期,測試驅(qū)動開發(fā)過程中不必關(guān)注,其中的復(fù)雜性被封裝在Cactus框架中。對于開發(fā)者只需擴(kuò)展Cactus中的TestCase(如JSPTestCase,ServletTestCase等等),在其中編寫初始化方法設(shè)置參數(shù),測試方法即可。


          參考資料及網(wǎng)站:
                Manning - JUnit in Action - Vincent Massol - 2003
                Jakarta http://jakarta.apache.org/index.html

          posted on 2007-02-19 23:19 _Kai_ 閱讀(545) 評論(0)  編輯  收藏 所屬分類: 隨感

          公告

          碼農(nóng)一枚

          歡迎大家發(fā)E-mail到 與我討論關(guān)于軟件開發(fā)的各種看法。

          最新Blog地址:http://thekayway.com/

          導(dǎo)航

          <2025年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          統(tǒng)計

          常用鏈接

          留言簿(2)

          隨筆分類(21)

          隨筆檔案(18)

          常去的地方

          技術(shù)站點(diǎn)

          朋友的Blog

          搜索

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 河北区| 霍邱县| 湘乡市| 大埔区| 保山市| 北京市| 卫辉市| 准格尔旗| 伽师县| 阿拉善右旗| 保亭| 南平市| 宁阳县| 巴东县| 临武县| 南昌市| 南溪县| 清远市| 潍坊市| 奉新县| 嘉鱼县| 铁岭县| 寻甸| 翼城县| 阿勒泰市| 永善县| 枣庄市| 岗巴县| 怀宁县| 子长县| 修水县| 岚皋县| 石景山区| 尼勒克县| 南雄市| 南部县| 青海省| 寿阳县| 曲阜市| 吴川市| 紫金县|