讓我給你講講 iOS 自動化測試的那些干貨(19)
發表于:2017-03-10來源:csdn作者:LeoMobileDeveloper點擊數:
標簽:iOS
架構 的App中, View只做純粹的展示型工作,把用戶交互通過各種方式傳遞到外部 Model只做數據存儲類工作 Controller作為View和Model的樞紐,往往要和很多Vie
架構的App中,
-
View只做純粹的展示型工作,把用戶交互通過各種方式傳遞到外部
-
Model只做數據存儲類工作
-
Controller作為View和Model的樞紐,往往要和很多View和Model進行交互,也是自動化包括代碼維護的痛點。
所以,對Controller瘦身是iOS架構中比較重要的一環,一些通用的技巧包括:
邏輯抽離:
-
網絡請求獨立??梢悦總€網絡請求以Command模式封裝成一個對象,不要直接在Controller調用AFNetworking。
-
數據存儲獨立。建立獨立的Store類,用來做數據持久化和緩存。
-
共有數據服務化(協議)。比如登錄狀態等等,通過服務去訪問,這樣服務提供者之需要處理服務的質量,服務使用者則信任服務提供者的結果。
Controller與View解耦合
-
建立ViewModel層,這樣Controller只需要和ViewModel進行交互。
-
建立UIView子類作為容器,將一些View放到容器后再把容器作為SubView添加到Controller里
-
建立可復用的Layout層,不管是AutoLayout還是手動布局。
Controller與Controller解耦合
-
建立頁面路由。每一個界面都抽象為一個URL,跳轉僅僅通過Intent或者URL跳轉,這樣兩個Controller完全獨立。
如果你的App用Swift開發,那么面向協議編程和不可變的值類型會讓你的代碼更容易測試。
當然,iOS組建化對自動化測試的幫助也很大,因為不管是基礎組件還是業務組件,都可以獨立測試。組建化又是一個很大的課題,這里不深入講解了。
KIF
原文轉自:http://blog.csdn.net/hello_hwc/article/details/60957515