WEB开发网
开发学院软件开发Java StrutsTestCase 简化开发过程 阅读

StrutsTestCase 简化开发过程

 2010-03-19 00:00:00 来源:WEB开发网   
核心提示: 在调用 setRequestPathInfo() 或 addRequestParameter() 方法时,会调用模拟 HttpServletRequest 对象的适当方法,StrutsTestCase 简化开发过程(6),在 HttpServletRequest 的模拟实现中,会把这条信息保存在

在调用 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。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:StrutsTestCase 简化 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接