Struts 2ユニットテストにJunnitを使ってアクションをテストします.


Struts 2を使用したJunit Pluginテストアクションは非常に便利であり、開発にTDDモードを採用すれば、推奨されています.余計なことは言わないで、直接テーマに入って、具体的な例を話しました.1、既存のStruts 2プロジェクトに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
 
*補足:Eclipseにservlet-ap.jar、jsp-appi.jarパッケージを導入します.
2、新しいアクションを作って、ここでAnnotationの方式を採用して、ゼロの配置を実現できます.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パッケージを追加し(この手順は省略しています.この文章を見ないでください.)、TestCaseを作成し、TestActiont Test.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());

    }

}
走るだけでいいです.このテストはアクションの中に一つのパラメータが入ってきて、パラメータ値を取り出します.JUnit PluginはServlet容器をシミュレートし、HttPServletRequest、HttpServletResonse、Servlet Contect、PageContextをシミュレートします.