利用cactus测试servlet的简单入门

    为了使得项目的开发正规化,准备在3u的这个项目中使用专门的测试工具,经过多方面的比较,最后选择cactus,使用工具eclipse3.1.1+cactus+junit

  1.解压cactus安装文件到某一目录下

  2.将lib下的jar拷贝到项目/web-inf/lib 下

  3.创建cactus.properties文件,并加入classpath(可选,在这里是为为了可以直接用eclipse的junit进行测试,可用eclipse配置路径)

  4.我需要被测试的类

 /*
 * 创建日期 2005-12-9
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
package com.test.web;

import java.io.FileNotFoundException;
import java.io.IOException;

import javax.servlet.RequestDispatcher;
// import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.jdom.JDOMException;

// import com.ca.website.mainpage.MainPageSupport;
// import com.error.ErrorProcesser;
// import com.jem.orm.sql.BsSQLHandler;
// import com.jem.orm.sql.BsSqlXmlPaser;
import com.jem.transdata.BsFormData;
import com.jem.transdata.BsFormTable;

// import com.orm.util.SQLStatementIDS;

public class LoginEdge extends HttpServlet {


     * 测试 by wst
     * @param request
     * @return
     */
    public boolean isValidUser(HttpServletRequest request) {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        if (username == null || password == null || !username.equals("justin")
                || !password.equals("123456")) {
            return false;
        } else {
            return true;
        }
    }
}

6.我的测试类

/*
 * 创建者  wst302
 *
 * 创建日期 2006-1-10
 *
 * 文档作用:测试登陆
 *
 * 版本:
 *
 */
package com.test;

import org.apache.cactus.ServletTestCase;
import org.apache.cactus.WebRequest;
import com.test.web.LoginEdge;

public class LoginEdgeTest extends ServletTestCase {

    public void beginValidUser(WebRequest webRequest) {
        webRequest.addParameter("username", "justin");
        webRequest.addParameter("password", "123456");
    }

    public void testValidUser() {
        LoginEdge loginServlet = new LoginEdge();
        assertTrue(loginServlet.isValidUser(request));
    }

    public void beginInValidUser(WebRequest webRequest) {
        webRequest.addParameter("username", "guest");
        webRequest.addParameter("password", "guest");
    }

    public void testInValidUser() {
        LoginEdge loginServlet = new LoginEdge();
        assertFalse(loginServlet.isValidUser(request));
    }

}
7.在web.xml需要如下配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<servlet>  
<servlet-name>ServletRedirector</servlet-name>    
<servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>
</servlet>   
<servlet>     
<servlet-name>ServletTestRunner</servlet-name>  
<servlet-class>org.apache.cactus.server.runner.ServletTestRunner</servlet-class>  
</servlet>       

<servlet-mapping>   
<servlet-name>ServletRedirector</servlet-name>    
<url-pattern>/ServletRedirector</url-pattern>
</servlet-mapping>   
<servlet-mapping>   
<servlet-name>ServletTestRunner</servlet-name>   
<url-pattern>/ServletTestRunner</url-pattern> 
</servlet-mapping>
<!--Test by wst -->
</web-app>
8.在cactus.properties需要如下配置

cactus.contextURL = http://localhost/3UFAssist

cactus.servletRedirectorName = ServletRedirector

cactus.enableLogging=true

9开始测试

输入以下http://localhost/3UFAssist/ServletTestRunner?suite=com.test.LoginEdgeTest

将出现测试结果:

  <?xml version="1.0" encoding="UTF-8" ?>
- < testsuites >
- < testsuite name =" com.test.LoginEdgeTest " tests =" 2 " failures =" 0 " errors =" 0 " time =" 0.625 ">
  < testcase name =" testValidUser " time =" 0.5 " />
  < testcase name =" testInValidUser " time =" 0.016 " />
  </ testsuite >
  </ testsuites >

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值