一个简单的例子来测试,action部分为public String execute(){
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("uname", userName);
if("admin".equals(userName)){
return "admin";
}else{
return "user"; 
}
}
JUNIT4测试这个方法@Test
public void testExecute() {

UserAction ua = new UserAction();
ua.execute();
}
但是会报失败,原因在于ACTION部分无法获取那个request,像这种情况做测试应该怎么来做呢?有用过MockHttpServletRequest request = new MockHttpServletRequest();
可以通过测试,但页面取不到request设置的值了。

解决方案 »

  1.   

    测试专门对action测试,测试跟界面有什么关系?
      

  2.   

    是与界面无关,我意思就是对action测试,关于action里的request那些地方就取不到了。
      

  3.   

    网上是不建议这么写的
    HttpServletRequest request = ServletActionContext.getRequest();因为,很难对request初始化一个值
      

  4.   

    请问下各位怎么来做比较好呢?用MockHttpServletRequest 能通过测试,但用它对于后期与页面的交涉又出问题了,总不能每次测试去改,测完又改回去吧。