WEB开发网
开发学院软件开发Java 追求代码质量: 测试 Struts 遗留的应用程序 阅读

追求代码质量: 测试 Struts 遗留的应用程序

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 在某些情况下,基于 Action 类中发现的对应逻辑,追求代码质量: 测试 Struts 遗留的应用程序(6),可能能够用基于 Web 的测试框架(像 JWebUnit 或 Selenium)间接地 测试代码,使用这些框架从测试设置的角度来说,在测试用例中必须有另一个逻辑映射 —&m

在某些情况下,基于 Action 类中发现的对应逻辑,可能能够用基于 Web 的测试框架(像 JWebUnit 或 Selenium)间接地 测试代码。使用这些框架从测试设置的角度来说,确实增加了复杂性。例如,要使用 JWebUnit,必须把应用程序部署到一个运行着配置好的数据库的 servlet 容器。把 StrutsTestCase 和 DbUnit 协同使用,可以方便测试,不必 把 war 文件部署到运行着的 servlet 容器。它还允许在不 考虑应用程序的视图方面的情况下进行测试。

关于逻辑映射

正确地配置了 MockStrutsTestCase 的实例后,测试 Action 类就只包含一点点逻辑映射。要调用 Action 类,需要强制 StrutsTestCase 框架通过一个路径间接地 调用它,这是在 struts-config.xml 文件中定义的。

例如,要强制调用 ChangePasswordAction 类,必须告诉框架使用 /changePasswordSubmit 路径。在清单 5 中可以看到这点,清单 5 中的代码片段来自 struts-config.xml 文件,它把 ChangePasswordAction 类映射到 /changePasswordSubmit 路径:


清单 5. struts-config.xml 代码片段显示了动作类路径映射
<action path="/changePasswordSubmit" 
     type="com.acme.ccb.action.ChangePasswordAction" 
     name="changePasswordForm" scope="request" 
     input="/jsp/admin/changepassword.jsp"> 
   
 <forward name="success" path="/viewUsers.do" 
      redirect="true" contextRelative="false" /> 
 
</action> 

一旦某个用户点击了提交按钮(举例),Struts 就把来自 HTTP 请求的参数值映射到 ActionForm,在这个示例中,是上面的 struts-config.xml 代码片段中(在清单 5 中)定义的 ChangePasswordForm。要模拟这个行为,在测试用例中必须有另一个逻辑映射 —— JSP 表单名称必须映射到值。在口令修改场景中,提交了四个参数:username、currentPassword、newPassword1 和 newPassword2( newPassword2 参数是多数 Web 页面为了校验新口令正确的确认信息)。

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

Tags:追求 代码 质量

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