java 单元测试总结_给servlet写单元测试的总结

本文介绍了如何对Servlet进行单元测试,包括使用HttpUnit、Cactus、Jetty和Mock对象(EasyMock)的方式。每种方法都有其特点,HttpUnit允许脱离容器独立测试,但可能遇到特定方法的限制;Cactus虽然需要容器支持但测试流程清晰;Jetty可作为嵌入式容器方便自动化测试;而Mock对象则专注于测试内部行为,避免依赖环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

给servlet写单元测试的总结收藏

servlet的测试一般来说需要容器的支持,不是像通常的java类的junit测试一样简单,

下面通过对HelloWorld代码的测试阐述了几种servlet测试方法。

被测试的HelloWorld类的代码如下:

/**

* 被测试的servlet

*/

import java.io.IOException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.cactus.WebRequest;

import org.apache.cactus.server.HttpServletRequestWrapper;

public class HelloWorld extends HttpServlet{

public void saveToSession(HttpServletRequest request) {

request.getSession().setAttribute("testAttribute",request.getParameter("testparam"));

}

public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{

String username=request.getParameter("username");

response.getWriter().write(username+":Hello World!");

}

public boolean authenticate(){

return true;

}

}

以HelloWorld为例,我总结了Servlet的多种测试方法如下:

一.使用HttpUnit测试

import com.meterware.httpunit.GetMethodWebRequest;

import com.meterware.httpunit.WebRequest;

import com.meterware.httpunit.WebResponse;

import com.meterware.servletunit.InvocationContext;

import com.meterware.servletunit.ServletRunner;

import com.meterware.servletunit.ServletUnitClient;

import junit.framework.Assert;

import junit.framework.TestCase;

public class HttpUnitTestHelloWorld extends TestCase {

protected void setUp() throws Exception {

super.setUp();

}

protected void tearDown() throws Exception {

super.tearDown();

}

public void testHelloWorld() {

try {

// 创建Servlet的运行环境

ServletRunner sr = new ServletRunner();

// 向环境中注册Servlet

sr.registerServlet("HelloWorld", HelloWorld.class.getName());

// 创建访问Servlet的客户端

ServletUnitClient sc = sr.newClient();

// 发送请求

WebRequest request = new GetMethodWebRequest("http:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值