每種情況一個 mock?
即使在我編寫本文時,我還可以聽到開發人員的嘲笑者 認為我的測試問題通過明智地使用 mock 對象就能輕易解決?梢 用 mock 對象創建一級隔離,它會形成更容易的測試;但是,我要說的是,把目標對象通過 mock 排除所需要的付出級別,比起承認隔離測試困難所需要的付出,要多得多。在這種情況下,我會采用在更高層次上的測試,這級測試有時叫做集成測試。
對于更高的復雜性,請注意 清單 1 中的代碼如何把 aForm 參數轉換成 ChangePasswordForm 對象,它是 Struts ActionForm 類型。這些 JavaBeans 有一個 validate 方法,這個方法由 Struts 在調用 Action 類的 execute() 方法之前調用。