使用Cactus进行容器内测试
1、到http://jakarta.apache.org/cactus/downloads.html下载Cactus所需要的jar包及Cactus的依赖的jar包(commons-codec-1.3.zip,其下载地址为:http://commons.apache.org/downloads/download_codec.cgi)
2、创建一个名为WebTest的web项目,将步骤1中下载的jar包加入到项目的classpath中,配置web.xml文件:添加如下两个servlet配置。
<servlet>
<servlet-name>ServletTestRunner</servlet-name>
<servlet-class>org.apache.cactus.server.runner.ServletTestRunner</servlet-class>
</servlet>
<servlet>
<servlet-name>ServletRedirector</servlet-name>
<servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletTestRunner</servlet-name>
<url-pattern>/ServletTestRunner</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletRedirector</servlet-name>
<url-pattern>/ServletRedirector</url-pattern>
</servlet-mapping>
3、编写一个servlet,FirstServlet.java的源代码如下:
package org.pioneer.test.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class FirstServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
if (isLogin(request)) {
System.out.println("success");
} else {
System.out.println("failure");
request.getSession().setAttribute("user", "user");
}
}
public boolean isLogin(HttpServletRequest request) {
if (null == request.getSession().getAttribute("user")) {
return false;
}
return true;
}
}
并在web.xml中添加FirstServlet的配置:
<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>org.pioneer.test.servlet.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/FirstServlet</url-pattern>
</servlet-mapping>
4、编写FirstServlet.java对应的测试类FirstServletTest.java,源代码如下所示:
package org.pioneer.test.servlet;
import org.apache.cactus.ServletTestCase;
public class FirstServletTest extends ServletTestCase {
public void testIsLogin() {
FirstServlet servlet = new FirstServlet();
boolean result = servlet.isLogin(request);
assertEquals(false, result);
}
}
5、编写TestAll.java类用于运行测试用例,其源代码如下所示:
package org.pioneer.test.servlet;
import junit.framework.Test;
import junit.framework.TestSuite;
public class TestAll {
public static Test suite() {
TestSuite suite = new TestSuite("Test All");
suite.addTestSuite(FirstServletTest.class);
return suite;
}
}
6、部署项目并打开浏览器访问http://localhost:8080/WebTest/ServletTestRunner?suite=org.pioneer.test.servlet.TestAll将会看到测试结果
<?xml version="1.0" encoding="UTF-8" ?>
<testsuites>
<testsuite name="org.pioneer.test.servlet.TestAll" tests="1" failures="0" errors="0" time="0.688">
<testcase name="testIsLogin" time="0.578" />
</testsuite>
</testsuites>
7、到http://jakarta.apache.org/cactus/integration/integration_browser.html下载cactus-report.xsl并将其放在WebRoot下,再在浏览器中请求http://localhost:8080/WebTest/ServletTestRunner?suite=org.pioneer.test.servlet.TestAll&xsl=cactus-report.xsl将看到html格式的测试结果。
分享到:
相关推荐
在IT行业中,Cactus是一个非常重要的工具,尤其对于软件开发者来说,它是一个用于在服务器端进行单元测试的框架。这篇“Cactus的学习笔记(一)”可能会涵盖Cactus的基本概念、安装过程、如何配置以及如何编写和运行...
Cactus是一款用于Java Web应用程序单元测试的开源工具。在深入探讨Cactus的1.8.1版本之前...通过解压并分析`cactus-1.8.1-bin.zip`文件,开发者可以快速开始使用Cactus进行有效的单元测试,提高代码质量和项目稳定性。
Cactus的一个关键优势在于它支持在容器内进行测试的策略,包括进程内和单个JVM实例内的测试。这种策略有助于提高测试的准确性和效率,因为它们更接近实际运行时的条件。这也符合Application Developer单元测试工具的...
4. Cactus:Cactus是一个用于在服务器环境中进行单元测试的框架,主要针对Java EE应用。它允许开发者在应用服务器内部运行测试,减少了部署到服务器进行测试的需要,提高了测试效率。 5. DbUnit:DbUnit是一个Junit...
1. **理解Web服务的测试原理**:Cactus的实现方式揭示了如何在服务器端进行单元测试,有助于提高测试的准确性和效率。 2. **提升框架设计能力**:Cactus的模块化设计和适配器模式可以作为学习框架设计的良好案例。...
包括探索JUnit的核心、软件测试原则、测试覆盖率与开发、使用stub进行粗粒度测试、使用mockobjects进行测试、容器内测试、从Ant中运行JUnit测试、从Maven2中运行JUnit测试、持续集成工具、表示层的测试、Ajax测试、...
包括探索JUnit的核心、软件测试原则、测试覆盖率与开发、使用stub进行粗粒度测试、使用mock objects进行测试、容器内测试、从Ant中运行JUnit测试、从Maven2中运行JUnit测试、持续集成工具、表示层的测试、Ajax测试、...
·用mock objects进行隔离... ·在Eclipse内进行测试 ·对如下内容进行单元测试 ◆Java应用程序(★★) ◆Filter ◆Servlet (★★★★) ◆EJB ◆JSP (★★★) ◆数据库应用程序(★★) ◆Taglib
Autofac是.NET平台上的一款流行的依赖注入(DI)容器,它帮助实现对象之间的解耦,促进组件的独立性和测试性。在Cactus项目中,Autofac负责管理对象的生命周期,根据需要自动创建和销毁对象,同时也支持服务注册和...
JUnit教程工程代码实例是针对Java开发人员的一个详细学习资源,主要涵盖了如何使用JUnit进行单元测试。JUnit是一款广泛使用的开源测试框架,它简化了Java应用程序的测试过程,使得开发者能够编写可重复运行的测试...
Cactus是一个用于测试Java EE容器服务的框架。它提供了模拟容器环境的功能,允许开发者在不依赖实际容器的情况下对组件进行测试。这对于提高测试覆盖率和确保组件在不同容器中的兼容性非常有帮助。 **9. 使用...
- **第7章:容器内测试**:探讨如何在特定环境下进行测试。 - **第三部分:JUnit与构建过程** - **第8章:使用Ant运行JUnit测试**:展示如何配置Ant来自动化JUnit测试流程。 - **第9章:使用Maven 2运行JUnit测试...
- **简介**:Cactus是一款专为测试Java EE容器服务而设计的测试框架。它可以模拟容器行为,从而允许开发者在没有实际容器的情况下进行测试。 - **应用场景**:主要用于测试Java EE应用程序中的容器服务,如EJB。 ...