posts - 165, comments - 198, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

StrutsTestCase 不需要 写 classpath 方法 ^_^

Posted on 2007-04-16 16:01 G_G 阅读(667) 评论(4)  编辑  收藏 所属分类: JUnit
下载http://sourceforge.net/projects/strutstestcase/
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 - sources  />
  
< form - beans  >
    
< form - bean name = " loginForm "  type = " com.yourcompany.struts.form.LoginForm "   />

  
</ form - beans >

  
< global - exceptions  />
  
< global - forwards  />
  
< action - mappings  >
    
< action
      name
= " loginForm "
      path
= " /login "
      scope
= " request "
      type
= " com.yourcompany.struts.action.LoginAction " >
      
< forward
        name
= " ok "
        path
= " /form/suss.jsp " />
      
< forward
        name
= " error "
        path
= " /form/login.jsp " />
         
    
</ action >

  
</ action - mappings >

  
< message - resources parameter = " com.yourcompany.struts.ApplicationResources "   />
</ struts - config >
Action
//Created by MyEclipse Struts
// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.0.1/xslt/JavaClass.xsl

package com.yourcompany.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.yourcompany.struts.form.LoginForm;
/** 
 * MyEclipse Struts
 * Creation date: 04-16-2007
 * 
 * XDoclet definition:
 * @struts.action path="/login" name="loginForm" input="/form/login.jsp" scope="request" validate="true"
 * @struts.action-forward name="Myjsp" path="/WEB-INF/"
 
*/
public class LoginAction extends Action {

    
// --------------------------------------------------------- Instance Variables

    
// --------------------------------------------------------- Methods

    
/** 
     * Method execute
     * 
@param mapping
     * 
@param form
     * 
@param request
     * 
@param response
     * 
@return ActionForward
     
*/
    
public ActionForward execute(
        ActionMapping mapping,
        ActionForm form,
        HttpServletRequest request,
        HttpServletResponse response) {
        LoginForm loginForm 
= (LoginForm) form;
        
        String name 
= loginForm.getName() ;
        String pass 
= loginForm.getPass() ;
        
        
if(name.equals(pass)){
             
return mapping.findForward("login");
            }
         
return mapping.findForward("ok");
         
    }

}


Form
package com.yourcompany.struts.form;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;

public class LoginForm extends ActionForm {
    
private String name ;
    
private String pass ;
    
    
public void setName(String name){
        
this.name = name ;
    }
    
public String getName(){
        
return this.name ;
    }
    
public void setPass(String pass){
        
this.pass = pass ;
    }
    
public String getPass(){
        
return this.pass ;
    }
}

关键的来了 ----
package test;

import java.io.File;

import servletunit.struts.MockStrutsTestCase;
import junit.framework.TestCase;
//
public class StrutsTest extends MockStrutsTestCase {

    
public StrutsTest(String testName){
        
super(testName);
    }
    
public void setUp()throws Exception{
        
super.setUp();
          File web 
= new File("E:/src/StrutsTestCase/WebRoot/");
        
this.setContextDirectory(web);
        setConfigFile(
"E:/src/StrutsTestCase/WebRoot/WEB-INF/web.xml");
        setConfigFile(
"E:/src/StrutsTestCase/WebRoot/WEB-INF/struts-config.xml");
 

    }
    
    
public void testAction() {
       
setRequestPathInfo("/login");
        this.addRequestParameter("name","liu");
        
this.addRequestParameter("pass","123");
        actionPerform();
        
this.verifyForward("ok");
    }
}

不需要 写 classpath 哈哈

评论

# 有关 cactus 的   回复  更多评论   

2007-05-15 09:40 by G_G
 
http://www.blogjava.net/zhyiwww/archive/2006/06/07/51185.html

# re: StrutsTestCase 不需要 写 classpath 方法 ^_^  回复  更多评论   

2007-11-08 10:16 by 李泳
假设我是用MyEclipse开发的,
setConfigFile("E:/src/StrutsTestCase/WebRoot/WEB-INF/web.xml");
里面的路径是开发时项目中的路径还是发布之后在Tomcat中的路径????

# re: StrutsTestCase 不需要 写 classpath 方法 ^_^  回复  更多评论   

2007-11-09 17:16 by G_G
@李泳
不是怎么理解的你的io操作!不要写物理路径。
我告诉你一种方法
这通过Classload来加载 写逻辑路径 就没有这什么考虑的了
可以参考我blog里的介绍
http://www.blogjava.net/Good-Game/archive/2007/08/09/128154.html

中的 hbn 加载文件

# re: StrutsTestCase 不需要 写 classpath 方法 ^_^  回复  更多评论   

2007-11-09 17:20 by G_G
你可以用
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();

new File(
classLoader.get URL 什么方法名字不太记的了
);

写逻辑名就可以如你的:
/WebRoot/WEB-INF/web.xml

只有注册用户登录后才能发表评论。


网站导航: