Struts2單元測試:使用Junit測試Action
使用Struts2的Junit Plugin測試Action是非常的方便的,如果在開發(fā)中采用TDD模式的話推薦使用。不說廢話了,直入主題,已具體實(shí)例說話!
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());
- }
- }
跑起來就可以了,非常好用,這個(gè)示例測試在Action當(dāng)中傳入一個(gè)參數(shù)并取出參數(shù)值。JUnit Plugin會(huì)模擬Servlet容器,模擬出 HttPServletRequest,HttpServletResponse,ServletContext,PageContext...
示例源碼請(qǐng)見附件!
有問題可以聯(lián)系作者,聯(lián)系方式:robinleex@gmail.com
【編輯推薦】