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

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

  • <strong id="5koa6"></strong>
  • 解讀Android官方MVP項目單元測試

    發表于:2016-06-29來源:簡書作者:geniusmart點擊數: 標簽:單元測試
    Google在3月份推出了一個項目,用來介紹Android MVP架構的各種組合,可以認為是官方在這方面的最佳實踐。令人稱道的是除了MVP本身之外,這些工程配備了極其完善的單元測試用例,學習

     


    Google在3月份推出了一個項目,用來介紹Android MVP架構的各種組合,可以認為是官方在這方面的最佳實踐。令人稱道的是除了MVP本身之外,這些工程配備了極其完善的單元測試用例,學習價值極高。本文著重針對todo-mvp的單元測試進行解讀。官方MVP項目的Github地址是:
    https://github.com/googlesamples/android-architecture

    寫在前面

    1. 關于MVP
      關于MVP的介紹很多,這不是本文的重點,這里列舉近期一些比較好的文章。
    2. 關于單元測試
      對于單元測試,需要預先了解以下內容
      • Android Studio的test和AndroidTest
      • AndroidJUnitRunner:一個兼容Junit4的Andriod單元測試框架
      • Mockito:單元測試利器
      • Espresso:支持UI測試的單元測試框架
    3. 關于todo-mvp的功能

    功能介紹


    簡而言之,這個工程包含了三個模塊:待辦事項列表模塊,待辦事項詳情模塊,統計模塊。

    MVP各層的單元測試選型

    在該項目中,MVP各層所使用的單元測試框架如下圖所示:


    官方todo-mvp的UT選型
    • P層:不需要任何Android環境,因此使用Junit測試即可
    • V層:使用Google強大的Espresso進行UI的測試
    • M層:涉及到數據庫相關操作,因此需要依賴Android環境,使用AndroidJUnitRunner進行測試

    在此處,我們先大致了解一下MVP各層的UT選型,然后通過一個例子,看看各層之間如何配合測試,最后再對各層UT選型的原因進行分析,從而理解整體測試架構。

    接下來我們以TO-DO List頁面(TasksActivity/TaskFragment)中加載任務列表功能為例,此場景的功能界面如下圖所示:


    待辦任務列表

    Presenter層的測試

    在這個功能里,Presenter只做了一件事情,就是loadTask(),時序圖如下所示:


    loadTask的時序圖]

    從時序圖上看,loadTask執行的邏輯是,1.調用View層開啟進度條->2.從Model層獲取待辦任務列表->3.Model層以回調函數的形式返回數據->4.調用View層關閉進度條->5.調用View層顯示任務列表。這5個步驟里,每個步驟的邏輯是否準確是View層和Model層該測試的事情,對于Presenter層來講,他的測試任務是確保這5個步驟如期調用。為了達成此目的,我們會采用

    原文轉自:http://www.jianshu.com/p/cf446be43ae8

    老湿亚洲永久精品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>