Struts 2ユニットテストにJunnitを使ってアクションをテストします.
Struts 2を使用したJunit Pluginテストアクションは非常に便利であり、開発にTDDモードを採用すれば、推奨されています.余計なことは言わないで、直接テーマに入って、具体的な例を話しました.1、既存のStruts 2プロジェクトにJUnit Pluginとそれに依存するSpringパッケージを加入する:
*補足:Eclipseにservlet-ap.jar、jsp-appi.jarパッケージを導入します.
2、新しいアクションを作って、ここでAnnotationの方式を採用して、ゼロの配置を実現できます.TestAction.java
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をシミュレートします.