public ActionForward execute(ActionMapping mapping, ActionForm aForm,
HttpServletRequest req, HttpServletResponse res) throws Exception {
try{
String newPassword = ((ChangePasswordForm)aForm).getNewPassword1();
String username = ((ChangePasswordForm)aForm).getUsername();
IUser user = DataAccessUtils.getDaos().getUserDao().findUserByUsername(username);
user.digestAndSetPassword(newPassword);
DataAccessUtils.getDaos().getUserDao().saveUser(user);
}catch(Throwable thr){
return findFailure(mapping, aForm, req, res);
}
return findSuccess(mapping, aForm, req, res);
}
圖 1. Action 類的輸出耦合
但是,就像在圖 1 中可以看到的,在試圖隔離 ChangePasswordAction 類并檢驗 execute() 方法時,該類給出了一些有代表性的挑戰。為了有效地測試 execute() 方法,必須處理三層耦合。首先,到 Struts 自身的耦合;其次,Servlet API 代表一個障礙;最后,到業務對象包的耦合,進一步檢查業務對象包,還會有數據訪問層使用 Hibernate 和 Spring。
文章來源于領測軟件測試網 http://www.kjueaiud.com/