使用cactus进行单元测试的方法

来源:互联网 发布:java web 日志采集 编辑:程序博客网 时间:2024/05/22 08:04
 一、在web.xml中配置返调servlet
    <servlet>
        
<servlet-name>ServletRedirector</servlet-name>
        
<servlet-class>
            org.apache.cactus.server.ServletTestRedirector
        
</servlet-class>
    
</servlet>
    
<servlet-mapping>
        
<servlet-name>ServletRedirector</servlet-name>
        
<url-pattern>/ServletRedirector</url-pattern>
    
</servlet-mapping>
二、在classes目录下配置cactus.properties配置文件
cactus.contextURL=http://localhost:8080/school   测试的URL
cactus.servletRedirectorName
=ServletRedirector   反调Servlet名称
三、拷贝cactus库到lib目录下
四、启动WEB Server
五、写单元测试程序
package org.school.test;


//import java.util.Random;

import junit.framework.Test;
import junit.framework.TestSuite;
import servletunit.struts.CactusStrutsTestCase;

import org.apache.cactus.WebRequest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


public class testUserAction extends CactusStrutsTestCase {
    
protected final Log log = LogFactory.getLog(getClass());

    
    
public testUserAction(String arg){
        
super(arg);
    }

    
    
public void beginRegister(WebRequest theRequest) {
//        theRequest.addHeader("METHOD", "POST");
//        theRequest.addParameter("param", "value", WebRequest.POST_METHOD);
//        Random rand=new Random();
        
//加载post 数量
        theRequest.addParameter("username""jingmin", WebRequest.POST_METHOD);
        theRequest.addParameter(
"password""vkbje76", WebRequest.POST_METHOD);
        theRequest.addParameter(
"repassword""vkbje76", WebRequest.POST_METHOD);
        theRequest.addParameter(
"email""vkbje76@163.com", WebRequest.POST_METHOD);
    }



    
public void testRegister() {
        setRequestPathInfo(
"/register");
        actionPerform();
        verifyNoActionErrors();
    }

    
    
public void testLogin() {
        setRequestPathInfo(
"/login");
        addRequestParameter(
"username""jingmin");
        addRequestParameter(
"password""vkbje76");
        actionPerform();
//        Enumeration names=request.getAttributeNames();
//        while(names.hasMoreElements()){
//            String name=(String)names.nextElement();
//            log.error(name);
//        }
//        log.error(request.getAttribute("org.apache.struts.action.MESSAGE"));
        verifyNoActionErrors();
    }

    
    
public static Test suite(){
        TestSuite suite
=new TestSuite();
//        

        suite.addTest(
new testUserAction("testRegister"));
        suite.addTest(
new testUserAction("testLogin"));
        suite.addTest(
new testUtil("testMD5"));
        
return suite;
    }

    
    @Override
    
protected void setUp() throws Exception {
        
super.setUp();
    }


    @Override
    
protected void tearDown() throws Exception {
        
super.tearDown();
    }


}


五、进行单元测试
以上方法可以对struts+spring+Hibernate进行测试,还可以配置文件在WEB Servlet直接进行测试
原创粉丝点击