• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 讓我給你講講 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

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>