StrutsTestCase 简化开发过程
2010-03-19 00:00:00 来源:WEB开发网在调用 setRequestPathInfo() 或 addRequestParameter() 方法时,会调用模拟 HttpServletRequest 对象的适当方法。在 HttpServletRequest 的模拟实现中,会把这条信息保存在适当的设置状态。所以,如果调用 addRequestParameter("name","value"),模拟的 HttpServletRequest 对象会保存它,然后,在 Struts 调用 request.getParameter("name") 时,用 "value" 作为返回值。
在恰当地完成 HttpServletRequest 初始化之后,就可以调用 actionPerform() 方法把控制权传递给 Struts。actionPerform() 方法调用 ActionServlet 的 doPost() 方法传递 HttpServletRequest 和 HttpServletResponse 的模拟实现。
在 ActionServlet 的 doPost() 方法中,处理请求的方式与其他 Struts 请求的处理方式类似,区别是直到执行 ActionForward JSP 组件之前才停止请求处理。在这个阶段,模拟对象的状态会被修改,以指出已经保存 ActionErrors 或 ActionMessages,或者指出由此生成的 ActionForward 是什么。
一旦控制权从 control returns from the actionPerform() 方法返回,就可以调用适当的 verifyXXX() 方法(检测模拟对象的状态)来检查各种假设是否成立。
测试禁用的用户
LoginActionForm 类的 isUserDisabled() 方法存在一个问题。在这个方法中,是通过查询 USERDISABLED 表来找出用户帐户是否被禁用。但是在当前的环境下,我们不想把时间浪费在设置和查询数据库上。
请记住,我们的目标是检查应用程序的 Struts 部分,而不是检查数据库的交互代码。为了测试数据库交互代码,可以从若干个可用工具中选择一个工具,例如 DBUnit。针对这一情况的最佳方案应当是创建一个 LoginActionForm 类的子类,并重写其中的 isUserDisabled() 方法。这个方法将根据输入参数的值判断是返回 true 还是返回 false。
Tags:StrutsTestCase 简化 开发
编辑录入:爽爽 [复制链接] [打 印]- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››简化版的richedit控件
- ››开发者眼中的Windows Phone和Android
- ››简化多层的Tabs导航表现网站的信息结构给用户
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››开发一个自己的HTML在线编辑器(一)
- ››开发一个自己的HTML在线编辑器(二)
- ››开发者在App Store上赚的钱比在Android Market上多...
- ››开发者应深入学习的10个Android开源应用项目
- ››开发移动 Web Ajax 应用
更多精彩
赞助商链接