parasoft Jtest 使用教程:生成并執(zhí)行仙人掌測試
Jtest能夠?qū)Ψ?wù)器端的JavaEE代碼(EJBs,Servlets,Struts,Action classes,Spring classes,taglibs,和servlet filters)自動生成仙人掌測試,然后在應(yīng)用程序容器執(zhí)行這些測試去模擬這些代碼的實際的運行時環(huán)境。在開發(fā)的工程中,這些測試能夠在開發(fā)者的桌面的當(dāng)?shù)貞?yīng)用服務(wù)器執(zhí)行。這就允許較早的,在開發(fā)階段就把問題暴露出來。否則到了QA階段,部署,或者生產(chǎn)階段,修復(fù)這些bug會更加困難和耗時。在開發(fā)的生命周期的后期,這些測試又可以運行在應(yīng)用服務(wù)器去驗證在配置和生產(chǎn)環(huán)境中代碼行為正確性。
目的和準(zhǔn)備
自動生成服務(wù)器端的測試然后再JavaEE容器中模擬真實的執(zhí)行環(huán)境。需要首先創(chuàng)建一個JTest JPetStore項目。
步驟
Struts 類
對Struts class產(chǎn)生和執(zhí)行仙人掌測試:
- 在Package Explorer選擇JPetStore>src>com.ibatis.struts>BeanAction.java.
- 單擊Test Using下拉菜單,然后選擇Test Using>Built-in>Unit Testing>Generate and Run In-container.
- 在Server Selection dialog中選擇JPetStore Tomcat5.5 Server然后單擊ok.
生成和執(zhí)行完成以后,統(tǒng)計報告會報告5個測試用例生成,100%的覆蓋率達到。注意到生成的測試類,BeanActionTest.java(在JPetStore.ctest項目里),擴展servletunit.struts.CactusStrutsTestCase.擴展這個類允許Jtest使用一個容器內(nèi)置的方式去運行Servlet容器,然后測試這些Action對象的執(zhí)行就像他們真的是通過Struts Action Servlet一樣。
Non-Java EE類
Jtest能夠生成和執(zhí)行容器內(nèi)的測試對任何類——甚至是和容器沒有任何交互的。
為Non-Java EE生成和執(zhí)行仙人掌測試:
- 在Package Explorer選擇JPetStore>src>com.ibatis.jpetstore.service>OrderService.java.
- 單擊Test Using下拉菜單,然后選擇Test Using>Built-in>Unit Testing>Generate and Run In-container.
- 在Server Selection dialog中選擇JPetStore Tomcat5.5 Server然后單擊ok.
生成和執(zhí)行完成以后,統(tǒng)計報告會報告5個測試用例生成,57%的覆蓋率達到。注意到生成的測試類,OrderServiceTest.java(在JPetStore.ctest項目里),擴展org.apache.cactus.ServletTestCase.擴展這個類允許Jtest使用一個容器內(nèi)置的方式去運行Servlet容器。
Spring類
為Spring類生成和執(zhí)行仙人掌測試:
- 完全刪除JPetStore項目和JPetStore.ctest項目.
- 重新建立一個JPetStore項目,不過選擇Spring而不是Struts.
- 在Package Explorer選擇JPetStore>src>org.springframework.samples.jpetstore.web.spring>ViewProductController.java.
- 單擊Test Using下拉菜單,然后選擇Test Using>Built-in>Unit Testing>Generate and Run In-container.
- 在Server Selection dialog中選擇JPetStore Tomcat5.5 Server然后單擊ok.
注意到這些生成的測試類,ViewProductControllerTest.java(在JPetStore.ctest項目中),擴展Cactus框架類ServletTestCase.在編輯器中打開類然后檢查創(chuàng)建的方法.注意到:某些對方法handleRequest的測試方法通過暴露異常給HttpServletRequest傳空值和HttpServletRequest。某些測試用例實際創(chuàng)建了一個配備了HttpServletRequestAdapter類的HttpServletRequest.對于這些測試用例,Jtest創(chuàng)建了返回的ModelandView對象的斷言。
在某些用例中,Jtest使用了插樁雖然測試用例是運行在容器中的。這允許他獲得一個高的覆蓋率通過返回一些會覆蓋所以code的值。當(dāng)然,不用插樁直接在容器中運行也是可行的。你可以通過在Test Configuration中設(shè)置取消創(chuàng)建插樁。
以上就是本次教程的內(nèi)容了,你也可以申請jtest試用>>,親自動手試試哦。
查看更多parasoft測試產(chǎn)品
<詳詢客服>獲取更多活動信息