最近在做一個項目,我們使用的是一些看似很標准的WEB結構,DAO(數據訪問)+HELPER(處理業務操作)+ACTION(調用HELPER層)+struts的控制系統,頁面使用struts標簽和部分自定義標簽完成顯示.
進入測試階段後
1,DAO測試--junit的確非常不錯,我們使用eclipse+junit.jar,很滿足的完成了這部分檢測
2.helper測試--使用和DAO相同的測試方法完成測試
3.進入action測試階段,出現問題,首先mapping無法模擬,改用strutstestcase,發現主要有Cactus approach 和
Mock Object approach ,真正使用以後,又 發現很多東西不能嵌入,測試模擬框架沒有能夠處理的足夠工具,再加上沒有好的工具支持,最後的action部分等於放棄,將希望放置於結合測試中,如何搭建一個好的驅動先行的系統框架,這時候才讓人覺的重要,合理有效的分離各層的類,使各層的類能夠被獨立的測試而不需要容器的支持,將是保證代碼質量很重要的一部分,希望以後能夠有更多的理解.組織使用一個完善的高質量的框架系統
結合這次測試和一些網上的資料,我對好的框架有了一些個人的看法,struts的action中的execute方法要注重使用,不是每個方法的實現都同時需要mapping,actionform,request.response這四個參數的,應該適當的做一些方法出來,分離他們.力求讓方法帶最小的參數.2.為了測試的方便,開發的時候應該適當的對外暴露一些接口,讓測試可以將數據放進去.
順便說一下,也許是我見識的少,STRUTS的測試工具的確很不方便,也不全面,現在的工具都不足以讓用戶進行方便,靈活的單體測試.