» 您尚未 登录   注册 | 社区服务 | FTP中心 | 帮助 | 社区 | 无图版 | 测试百科  | 测试Blog 
软件测试基地论坛 -> 测试开发技术 -> [求助]strutstestcase自动生成的测试Action的代码
 XML   RSS 2.0   WAP 

--> 本页主题: [求助]strutstestcase自动生成的测试Action的代码 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题
llc2005




该用户目前不在线
级别: 测试新手
精华: 0
发帖: 32
基地声望: 13 点
基地币: 6665 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:12(小时)
注册时间:2005-11-28
最后登录:2006-02-09
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子

[求助]strutstestcase自动生成的测试Action的代码

strutstestcase自动生成的代码如下:

package com.alyssa.actions;

import servletunit.struts.*;
import java.sql.*;
import org.apache.struts.action.*;
import javax.servlet.http.*;

public class TestarticleAction1 extends MockStrutsTestCase {
  private articleAction articleAction = null;

  protected void setUp() throws Exception {
    super.setUp();
    articleAction = new articleAction();
  }

  protected void tearDown() throws Exception {
    articleAction = null;
    super.tearDown();
  }

  public void testAdd() throws SQLException {    
    ActionMapping actionMapping = null;
    ActionForm actionForm = null;
    HttpServletRequest servletRequest = null;
    HttpServletResponse servletResponse = null;
    ActionForward expectedReturn = null;
    ActionForward actualReturn = articleAction.add(actionMapping, actionForm, servletRequest, servletResponse);
    assertEquals("return value", expectedReturn, actualReturn);
    /**@todo fill in the test code*/
  }


}


问题是:MockStrutsTestCase这个类有很多辅助测试的方法,而它自动生成的却是和JUnit的没什么区别,也是去调用add(xx,xx,xx,xx)这个方法来进行测试,而actionMapping ,actionForm,servletRequest, servletResponse等的付值该怎么付呢??
它是自动生成付的全是null,但要达到测试目的就不可以是null,我该怎么写呢? 请前辈指教

又或是它自动生成的一些测试方法是根本无用的,应该全部自己重新写过?

[楼 主] | Posted: 2005-12-29 09:34 顶端
llc2005




该用户目前不在线
级别: 测试新手
精华: 0
发帖: 32
基地声望: 13 点
基地币: 6665 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:12(小时)
注册时间:2005-11-28
最后登录:2006-02-09
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



哦,sorry ,忘了列出articleAction的代码了

package com.alyssa.actions;

import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;
import com.alyssa.forms.articleActionForm;
import com.alyssa.daos.articleDao;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionErrors;
import java.sql.SQLException;

public class articleAction extends Action {
  public ActionForward add(ActionMapping actionMapping,
                      ActionForm actionForm,
                      HttpServletRequest servletRequest,
                      HttpServletResponse servletResponse) throws
        SQLException {
    articleActionForm form = (articleActionForm) actionForm;
    ActionErrors errors = new ActionErrors();
    articleDao dao = new com.alyssa.daos.oracle.articleImpl();
    if(!valid(servletRequest,errors)){
        saveErrors(servletRequest, errors);
        return actionMapping.findForward("articleNewError");
    }
    dao.add(form);
    return actionMapping.findForward("articleView");
  }
}

[1 楼] | Posted: 2005-12-29 09:40 顶端
Fastpoint


该用户目前不在线
级别: 总版主
精华: 44
发帖: 5033
基地声望: 390 点
基地币: 1687 Bug
基地贡献: 0 点
好评度: 15 点
在线时间:818(小时)
注册时间:2005-10-08
最后登录:2008-07-22
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



有没有人能回答的?我不用Struts所以也说不出来啊,关注

可不可不要这么样徘徊在目光内
你会察觉到我根本寂寞难耐
即使千多百个深夜曾在梦境内
我有吻过你这毕竟并没存在

人声车声开始消和逝
无声挣扎有个情感奴隶
是我多么的想她
但我偏偏只得无尽叹谓

其实每次见你我也着迷
无奈你我各有角色范围
就算在寂寞梦内超出好友关系
唯在暗里爱你暗里着迷
无谓要你惹上各种问题
共我道别吧别让空虚使我越轨
[2 楼] | Posted: 2005-12-29 10:05 顶端
llc2005




该用户目前不在线
级别: 测试新手
精华: 0
发帖: 32
基地声望: 13 点
基地币: 6665 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:12(小时)
注册时间:2005-11-28
最后登录:2006-02-09
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



hehe,斑竹,我发的版子不对,斑竹可以移动到正确的版子上
[3 楼] | Posted: 2005-12-29 10:06 顶端
llc2005




该用户目前不在线
级别: 测试新手
精华: 0
发帖: 32
基地声望: 13 点
基地币: 6665 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:12(小时)
注册时间:2005-11-28
最后登录:2006-02-09
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



现在,我把testAdd()的代码改了一下,把它自动生成的代码都删掉了(因为我还不知道它自动生成的代码该怎么用......)

改后代码:

public void testAdd() throws SQLException {    
    setRequestPathInfo("/articleAction.do");
    addRequestParameter("doType", "add");
    actionPerform();
    verifyNoActionErrors();
    verifyForward("articleView");
    assertNotNull(request.getAttribute("results"));
}

调式中发现,我对方法进行改动后,保存并编译,再执行,报错如下:

junit.framework.AssertionFailedError: Was expecting '/article/article1.jsp?doType=search' but it appears the Action has tried to return an ActionForward that is not mapped correctly.

     at servletunit.struts.Common.verifyForwardPath(Common.java:333)

     at servletunit.struts.MockStrutsTestCase.verifyForward(MockStrutsTestCase.java:675)

     at com.alyssa.actions.TestarticleAction1.testAdd(TestarticleAction1.java:26)

...(Click for full stack trace)...

发现它在执行我以前写的代码,addRequestParameter("doType", "search");可这个我现在已经改了呀,怎么还去执行它呢,何况我都保存并编译了的,奇怪

[4 楼] | Posted: 2005-12-29 10:15 顶端

软件测试基地论坛 -> 测试开发技术




软件测试基地上海测仕信息技术有限公司旗下网站
Copyright © 2005-2007 Cntesting.com, All Rights Reserved
沪ICP备06057721号

Powered by PHPWind Code © 2003-06 PHPWind
Total 0.159492(s) query 5, Time now is:12-04 14:51, Gzip disabled
You can contact us


每日一句:Loading...