`
scnujie
  • 浏览: 127737 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用cactus测试servlet(二)

阅读更多
                       
1.  beginXxx()方法

        如果你的测试方法名最终是testRiotHandler,那么你可能编写一个附加的公共方法叫beginRiotHandler()。这个方法就是一般的beginXXX()方法,并且在测试执行
        
    在客户端。beginXXX方法必须接受一个变量---一个org.apache.cactus.WebRequest.WebRequest表示一个客户端请求,ServletTestCase会将其发送到转向器servlet,

    最后被复制到测试安全的请求实例变量中。beginXXX方法实际是用来为这个请求对象增加参数或其他信息的。因为beginXXX执行于另一个与运行在服务器上的测试案例

    不同的拷贝,它惟一与服务器端测试的执行代码的通讯方法就是通过WebRequest.

        还有就是WebRequest定义了若干设置请求状态的方法。比如:addCookie(),addHeader(),addParameter()分别用于增加reqeust的cookie,header和parameter.

    比较重要的是如果在beginXXX方法中调用了setAutomaticSession(false),那么ServletTestCase中的会话实例变量将不被转向实例化,而且对request.getSession(false)

    的调用返回null值。

2.  隐含对象

        Cactus一个主要的特点就是隐含对象作为ServletTestCase的公共成员变量而存在。服务器端方法可以将这些变量作为参数传递到需要它们的被测试的方法中。                 
    ServletTestCase定义了四个隐含对象:request,response,session和config。这些变量在调用setUp()之前被初始化,并只在运行在服务器上的测试案例的拷贝有效(

    它们在客户端为空值,也就是说它们在beginXXX和endXXX方法中为空)。

3.  endXXX()

        ServletTestCase希望子类定义的最后(可选)方法是endXXX().这个方法只有从服务器得到在服务端执行的结果以后才被调用。如果结果中不包含任何失败或错误,

    endXXX()就被调用。

分享到:
评论

相关推荐

    cactus的学习笔记(一)

    例如,假设有一个名为`MyServlet`的Servlet,你可以创建一个对应的Cactus测试类`TestMyServlet`,并在其中编写测试方法: ```java public class TestMyServlet extends ServletTestCase { public void testDoGet...

    jakarta-cactus-12-1.7.1.rar

    - 创建Cactus测试类,这些类继承自Cactus提供的基类,并使用JUnit注解。 - 在测试方法中,使用Cactus提供的API来模拟HTTP请求,与服务器交互。 - 测试执行后,Cactus会捕获结果并报告测试状态。 4. **Cactus的...

    cactus-源码.rar

    2. **Servlet Test Runner**:在Servlet容器中,`ServletTestRunner`是一个特殊的Servlet,负责处理由Cactus测试框架发起的HTTP请求。它根据请求参数找到对应的测试方法并执行。 3. **服务器端与客户端的通信**:...

    cactus-1.8.1-bin.zip

    3. **示例**:可能提供了一些示例项目,展示了如何设置Cactus测试,并且演示了如何针对不同类型的Web组件(如Servlets和EJBs)编写测试用例。 4. **构建脚本**:如Ant或Maven的构建脚本,用于帮助开发者设置测试...

    基于Junit的测试组件cactus

    Cactus是一个基于JUnit框架的简单测试框架,用来单元测试服务端Java代码。Cactus框架的主要目标是能够单元测试服务端的使用Servlet对象的Java方法如HttpServletRequest,HttpServletResponse,HttpSession等

    使用EJB+Struts1.3+Ant+Cactus+DbUnit+JMeter+StrutsTest实现测试4

    在本文中,我们将深入探讨如何使用一系列技术和工具,如EJB、Struts1.3、Ant、Cactus、DbUnit、JMeter以及StrutsTest,来实现一个完整的测试流程,针对一个基于Java的企业级应用程序进行全面的测试。这些技术在软件...

    软件测试技术在J2EE项目中的应用

    例如,Cactus作为JUnit的扩展,允许在服务器端执行测试,特别适用于测试EJB、Servlet和JSP的集成。它将测试代码分布在客户端和服务器端,以模拟真实的运行环境。 3. 功能测试:这一阶段的目标是验证系统的整体功能...

    语言技术语言技术语言技术

    例如,测试Servlet时,你可以利用`ServletTestCase`提供的隐含对象准备HTTP参数,然后通过Redirector Proxy执行测试流程。测试Filter时,你可以访问由Container管理的`HttpServletRequestWrapper`、`...

    JUnit_完整教程_基础_实例

    1. **Cactus**:Cactus 是一个基于 JUnit 的扩展框架,主要用于 Web 应用程序的单元测试。它可以模拟 Servlet、JSP 和其他 Web 元素的行为,适用于更复杂的 Web 层测试。 2. **HttpUnit**:尽管 HttpUnit 不是一款...

    java网上银行,完整代码

    - **BAMS_Cactus_v1.03**:这可能是系统的一个测试版本,包含了Cactus测试的结果和优化建议。Cactus可以帮助开发者定位性能瓶颈,进行压力测试,确保系统在高并发环境下也能正常工作。 6. **持续集成与部署** - ...

    Jakarta Struts Live

    - **使用StrutsTestCase(Cactus Mode)**:解释了如何在Cactus模式下使用StrutsTestCase进行测试,该模式可以与Servlet容器集成,提供更接近实际运行环境的测试体验。 - **使用jWebUnit测试JSP**:介绍了如何使用...

    javaXP极限编程

    例如,Ant用于自动化构建过程,Junit用于单元测试,而Cactus则提供了一种测试框架,用于测试Java Servlet和JSP。 #### 极限编程工具箱 书中提到了一个开放源码工具箱,涵盖了从代码管理到测试,再到部署的各个环节...

    JUnit.in.Action中文版

    ·用Cactus进行容器内测试 ·用Ant和Maven进行自动构建(★★★★★) ·在Eclipse内进行测试 ·对如下内容进行单元测试  ◆Java应用程序(★★)  ◆Filter  ◆Servlet (★★★★)   ◆EJB  ◆JSP (★...

    AppFuse Architecture

    5. **test**:包括JUnit、Cactus和StrutsTestCase测试用例,确保代码质量。 6. **tools**:包含辅助工具,如Strutsgen,用于从ActionForms生成JSP页面。 7. **web**:包含了JSP、属性文件、图片、脚本和样式表,这些...

    J2EEUnit-开源

    `sample_servlet.html` 文件提供了使用 J2EEUnit 测试 Servlet 的示例,展示了如何创建一个测试用例,定义请求参数,检查响应结果,以及如何模拟和验证 Servlet 的生命周期方法。 **6. 配置与定制** `configuration...

    12个最重要的J2EE最佳实践

    利用如JUnit和Cactus等开源测试框架,可以有效提升J2EE组件的测试覆盖率,减少回归测试时间和成本。 #### 3. 代码重构与持续改进 代码重构是保持代码健康、提升可读性和可维护性的关键步骤。在J2EE项目中,定期...

    appfuse开发文档

    5. **测试与部署**:使用内置的测试框架如JUnit和Cactus进行单元测试,完成开发后,可以方便地将应用部署到Tomcat等Servlet容器中。 AppFuse是一个强大的工具,尤其适合初学者和经验丰富的开发者快速启动新项目。...

    2019上海海洋大学软件工程学院毕业设计选题参考表3.docx

    13. **基于 Cactus 的 JSP 页面测试及代码自动生成器**:Cactus框架用于单元测试,以及自动化代码生成技术。 14. **华师大后勤集团信息管理系统的设计与开发**:涉及Web开发,数据库设计,以及大型组织的信息管理...

Global site tag (gtag.js) - Google Analytics