![]() |
|
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 頁面為了校驗新口令正確的確認信息)。