当前位置:[首页 > 日语资讯 > J.TEST > parasoft Jtest 使用教程:生成并执行仙人掌测试]

parasoft Jtest 使用教程:生成并执行仙人掌测试

发布: 2017-12-12 23:44 | 来源:www.jptranslate.com | 查 看:

parasoft Jtest 使用教程:生成并执行仙人掌测试

2017-04-07 17:29 来源:慧都控件 程序设计

原标题:parasoft Jtest 使用教程:生成并执行仙人掌测试

Jtest能够对服务器端的JavaEE代码(EJBs,Servlets,Struts,Action classes,Spring classes,taglibs,和servlet filters)自动生成仙人掌测试,然后在应用程序容器执行这些测试去模拟这些代码的实际的运行时环境。在开发的工程中,这些测试能够在开发者的桌面的当地应用服务器执行。这就允许较早的,在开发阶段就把问题暴露出来。否则到了QA阶段,部署,或者生产阶段,修复这些bug会更加困难和耗时。在开发的生命周期的后期,这些测试又可以运行在应用服务器去验证在配置和生产环境中代码行为正确性。

目的和准备

自动生成服务器端的测试然后再JavaEE容器中模拟真实的执行环境。需要首先创建一个JTest JPetStore项目。

步骤Struts

对Struts class产生和执行仙人掌测试:

在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.

parasoft Jtest 使用教程:生成并执行仙人掌测试

生成和执行完成以后,统计报告会报告5个测试用例生成,100%的覆盖率达到。注意到生成的测试类,BeanActionTest.java(在JPetStore.ctest项目里),扩展servletunit.struts.CactusStrutsTestCase.扩展这个类允许Jtest使用一个容器内置的方式去运行Servlet容器,然后测试这些Action对象的执行就像他们真的是通过Struts Action Servlet一样。

Non-Java EE类

Jtest能够生成和执行容器内的测试对任何类——甚至是和容器没有任何交互的。

为Non-Java EE生成和执行仙人掌测试:

在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.

parasoft Jtest 使用教程:生成并执行仙人掌测试

生成和执行完成以后,统计报告会报告5个测试用例生成,57%的覆盖率达到。注意到生成的测试类,OrderServiceTest.java(在JPetStore.ctest项目里),扩展org.apache.cactus.ServletTestCase.扩展这个类允许Jtest使用一个容器内置的方式去运行Servlet容器。

Spring类

为Spring类生成和执行仙人掌测试:

完全删除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.

parasoft Jtest 使用教程:生成并执行仙人掌测试

parasoft Jtest 使用教程:生成并执行仙人掌测试

注意到这些生成的测试类,ViewProductControllerTest.java(在JPetStore.ctest项目中),扩展Cactus框架类ServletTestCase.在编辑器中打开类然后检查创建的方法.注意到:某些对方法handleRequest的测试方法通过暴露异常给HttpServletRequest传空值和HttpServletRequest。某些测试用例实际创建了一个配备了HttpServletRequestAdapter类的HttpServletRequest.对于这些测试用例,Jtest创建了返回的ModelandView对象的断言。

在某些用例中,Jtest使用了插桩虽然测试用例是运行在容器中的。这允许他获得一个高的覆盖率通过返回一些会覆盖所以code的值。当然,不用插桩直接在容器中运行也是可行的。你可以通过在Test Configuration中设置取消创建插桩。