|
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 页面为了校验新口令正确的确认信息)。