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

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