该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-08
以下代码是登录Action中一段,使用StrutsTestCase该如何进行单元测试? public ActionForward login(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response)throws Exception{ String userID = WebParamUtils.getParameter(request, "userID", ""); String password = this.getParameter(request, "userpass", ""); TbFilesystemusersDao udao = TbFilesystemusersDaoFactory.create(); TbFilesystemusers[] tusers = null; TbFilesystemusers tuser = null; try{ tusers = udao.findWhereUserIDEquals(userID); if(tusers == null || tusers.length == 0){ request.setAttribute("message", "请您输入正确用户名及密码!"); return mapping.findForward("logout"); } tuser = tusers[0]; request.setAttribute("userid", username); if( !password.equals(tuser.getUserPwd().trim())){ request.setAttribute("message", "请您输入正确用户名及密码!"); return mapping.findForward("logout"); } Role roles[] = rdao.findWhereRoleCodeEquals(tuser.getUserrole()); Role role = null; if(roles != null && roles.length > 0){ role = roles[0]; } request.getSession().setAttribute(Const.ROLE, role); request.getSession().setAttribute(Const.LOGIN_USER, tuser); }catch(Exception ex){ ex.printStackTrace(); request.setAttribute("message", "请您输入正确用户名及密码!"); return mapping.findForward("logout"); } return mapping.findForward("success"); }
有想法使用MockStrutsTestCase来测试,自己写了个MockUserLoginAction继承上面的UserLoginAction
public class MockUserLoginAction extends UserLoginAction{ public ActionForward login(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception { String username = WebParamUtils.getParameter(request, "username", ""); String password = this.getParameter(request, "userpass", ""); System.out.println("username"); System.out.println("password"); if(username == null || username.length()== 0){ request.setAttribute("message", "请您输入正确用户名及密码!"); return mapping.findForward("logout"); } if(username!="8000"||password!="123456") { request.setAttribute("message", "请您输入正确用户名及密码!"); return mapping.findForward("logout"); } request.setAttribute("userid", username); return mapping.findForward("success"); } }
测试类代码如下: public void testLoginSuccess() throws Exception { STCRequestProcessor.addMockAction("com.zzy.record.action.user.UserLoginAction","com.zzy.record.action.user.MockUserLoginAction"); setRequestPathInfo("/loginAction"); addRequestParameter("method","login"); addRequestParameter("username","8000"); addRequestParameter("userpass","123456"); actionPerform(); //verifyForward("success"); assertEquals("8000",this.getMockRequest().getAttribute("userid")); }
但运行出错
另: 上面的测试代码运行失败 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-04-18
有什么好办法不?
我一直找不到方法来解决它! |
|
返回顶楼 | |
浏览 2598 次