Struts2單元測(cè)試:使用Junit測(cè)試Action
使用Struts2的Junit Plugin測(cè)試Action是非常的方便的,如果在開(kāi)發(fā)中采用TDD模式的話推薦使用。不說(shuō)廢話了,直入主題,已具體實(shí)例說(shuō)話!
1、在原有的Struts2工程加入JUnit Plugin和它依賴的Spring包:
- struts2-junit-plugin-2.1.8.jar
 - org.springframework.core-3.0.3.RELEASE.jar
 - org.springframework.test-3.0.3.RELEASE.jar
 
2、新建個(gè)Action,我這里采用的Annotation的方式,可以實(shí)現(xiàn)零配置。TestAction.java
- @Result(location = "/index.jsp")
 - public class TestAction extends ActionSupport {
 - private String param;
 - public String execute() {
 - return SUCCESS;
 - }
 - public String getParam() {
 - return param;
 - }
 - public void setParam(String param) {
 - this.param = param;
 - }
 - }
 
3、在工程中添加JUnit包(此步驟略了,搞不定這部的就不要看此篇文章啦!),創(chuàng)建TestCase,TestActionTest.java
- import java.robinleex.action.TestAction;
 - import org.apache.struts2.StrutsTestCase;
 - import org.junit.Test;
 - import com.opensymphony.xwork2.ActionProxy;
 - public class TestActionTest extends 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());
 - }
 - }
 
跑起來(lái)就可以了,非常好用,這個(gè)示例測(cè)試在Action當(dāng)中傳入一個(gè)參數(shù)并取出參數(shù)值。JUnit Plugin會(huì)模擬Servlet容器,模擬出 HttPServletRequest,HttpServletResponse,ServletContext,PageContext...
示例源碼請(qǐng)見(jiàn)附件!
有問(wèn)題可以聯(lián)系作者,聯(lián)系方式:robinleex@gmail.com
【編輯推薦】















 
 
 




 
 
 
 