junit测试Struts2

来源:互联网 发布:国密sm2算法程序 编辑:程序博客网 时间:2024/06/05 04:06

使用Struts2的Junit Plugin测试Action是非常的方便的,如果在开发中采用TDD模式的话推荐使用。不说废话了,直入主题,已具体实例说话!

1、在原有的Struts2工程加入JUnit Plugin和它依赖的Spring包:
  

struts2-junit-plugin-2.1.8.jar

struts2-convention-plugin-2.1.8.jar
org.springframework.core-3.0.3.RELEASE.jar
org.springframework.test-3.0.3.RELEASE.jar

 

2、新建个Action,我这里采用的Annotation的方式,可以实现零配置。TestAction.java

@Result(location= "/index.jsp")
public class TestActionextends ActionSupport {
    private String param;

    public String execute(){
        return SUCCESS;
    }

    public String getParam(){
        return param;
    }

    public void setParam(String param){
        this.param= param;
    }

}



3、在工程中添加JUnit包(此步骤略了,搞不定这部的就不要看此篇文章啦!),创建TestCase,TestActionTest.java

importjava.robinleex.action.TestAction;

import org.apache.struts2.StrutsTestCase;
import org.junit.Test;

import com.opensymphony.xwork2.ActionProxy;

public class TestActionTestextends StrutsTestCase {

    @Test
    public void testExecute()throws Exception{
        ActionProxy proxy = null;
        TestAction test = null;
        
        request.setParameter("param","test...");
        proxy = getActionProxy("/test.action");
        test = (TestAction)proxy.getAction();

        String result = proxy.execute();
        
        assertEquals("success",result);
        assertEquals("test...", test.getParam());



    }

}


跑起来就可以了,非常好用,这个示例测试在Action当中传入一个参数并取出参数值。JUnit Plugin会模拟Servlet容器,模拟出HttPServletRequest,HttpServletResponse,ServletContext,PageContext...


转自:http://blog.chinaunix.net/u3/117605/showart_2292982.html

原创粉丝点击