Google在3月份推出了一個項目,用來介紹Android MVP架構的各種組合,可以認為是官方在這方面的最佳實踐。令人稱道的是除了MVP本身之外,這些工程配備了極其完善的單元測試用例,學習價值極高。本文著重針對todo-mvp的單元測試進行解讀。官方MVP項目的Github地址是:
https://github.com/googlesamples/android-architecture
簡而言之,這個工程包含了三個模塊:待辦事項列表模塊,待辦事項詳情模塊,統計模塊。
在該項目中,MVP各層所使用的單元測試框架如下圖所示:
在此處,我們先大致了解一下MVP各層的UT選型,然后通過一個例子,看看各層之間如何配合測試,最后再對各層UT選型的原因進行分析,從而理解整體測試架構。
接下來我們以TO-DO List頁面(TasksActivity/TaskFragment)中加載任務列表功能為例,此場景的功能界面如下圖所示:
在這個功能里,Presenter只做了一件事情,就是loadTask(),時序圖如下所示:
從時序圖上看,loadTask執行的邏輯是,1.調用View層開啟進度條->2.從Model層獲取待辦任務列表->3.Model層以回調函數的形式返回數據->4.調用View層關閉進度條->5.調用View層顯示任務列表。這5個步驟里,每個步驟的邏輯是否準確是View層和Model層該測試的事情,對于Presenter層來講,他的測試任務是確保這5個步驟如期調用。為了達成此目的,我們會采用
原文轉自:http://www.jianshu.com/p/cf446be43ae8