Spring和Hibernate利用JUnit进行测试,大家已经很熟悉.
Struts则利用StrutsTest测试.
下面我们测试一个登录的Struts程序
LoginForm.Java 文件
package com.bcxy.struts.form;
import javax.Servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
public class LoginForm extends ActionForm {
private String user;
private String pass;
/**
* Returns the user.
* @return String
*/
public String getUser() {
return user;
}
/**
* Set the user.
* @param user The user to set
*/
public void setUser(String user) {
this.user = user;
}
/**
* Returns the pass.
* @return String
*/
public String getPass() {
return pass;
}
/**
* Set the pass.
* @param pass The pass to set
*/
public void setPass(String pass) {
this.pass = pass;
}
}
LoginAction.java 文件
package com.bcxy.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.bcxy.struts.form.LoginForm;
public class LoginAction extends Action {
/**
* Method execute
* @param ActionMapping mapping
* @param ActionForm form
* @param HttpServletRequest request
* @param HttpServletResponse response
* @return ActionForward
* @throws Exception
*/
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
LoginForm loginForm = (LoginForm) form;
String user = loginForm.getUser();
String pass = loginForm.getPass();
if(user.equals(pass)){
return mapping.findForward("success");
}else{
return mapping.findForward("fail");
}
}
}
struts-config.XML 文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<!-- ========== Data Source Configuration =============================== -->
<data-sources />
<!-- ========== Form Bean Definitions ================================== -->
<form-beans>
<form-bean name="loginForm" type="com.bcxy.struts.form.LoginForm">
<form-property name="user" type="java.lang.String" />
<form-property name="pass" type="java.lang.String" />
</form-bean>
</form-beans>
<!-- ========== Global Exception Definitions ============================== -->
<global-exceptions />
<!-- ========== Global Forward Definitions =============================== -->
<global-forwards />
<!-- ========== Action Mapping Definitions =============================== -->
<action-mappings>
<action
type="com.bcxy.struts.action.LoginAction"
name="loginForm"
path="/login"
scope="request"
validate="false">
<forward name="success" path="/success.JSP"/>
<forward name="fail" path="/fail.jsp"/>
</action>
</action-mappings>
<!-- ========== Controller Configuration ================================ -->
<controller />
<!-- ========== Message Resources Definitions ============================ -->
<!-- ========== Plug Ins Configuration ================================= -->
<message-resources parameter="com.bcxy.struts.ApplicationResources" />
</struts-config>
下面我们写一个测试文件,它继承strtustest的MockStrutsTestCase类.
/*
* Created on 2004-10-31
*
*/
package test;
import java.io.File;
import servletunit.struts.MockStrutsTestCase;
/**
* @author ezerg
*/
public class LoginTest extends MockStrutsTestCase {
public LoginTest() {
super();
}
/**
* @param arg0
*/
public LoginTest(String arg0) {
super(arg0);
}
public void setUp() throws Exception{
super.setUp();
//指明Web应用的根
File context = new File("defaultroot");
setContextDirectory(context);
}
public void tearDown() throws Exception{
super.tearDown();
}
public void testLogin(){
//设置action的path
setRequestPathInfo("/login.do");
//准备所需要的参数
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




