這種方式下retrofit的response可以由單元測試編寫者設置,而不來源于網絡,從而解除了對網絡環境的依賴。
在實際項目中使用Robolectric構建單元測試
單元測試的范圍
在Android項目中,單元測試的對象是組件狀態、控件行為、界面元素和自定義函數。本文并不推薦對每個函數進行一對一的測試,像onStart()、onDestroy()這些周期函數并不需要全部覆蓋到。商業項目多采用Scrum模式,要求快速迭代,有時候未必有較多的時間寫單元測試,不再要求逐個函數寫單元測試。
本文單元測試的case多來源于一個簡短的業務邏輯,單元測試case需要對這段業務邏輯進行驗證。在驗證的過程中,開發人員可以深度了解業務流程,同時新人來了看一下項目單元測試就知道哪個邏輯跑了多少函數,需要注意哪些邊界——是的,單元測試需要像文檔一樣具備業務指導能力。
在大型項目中,遇到需要改動基類中代碼的需求時,往往不能準確快速地知道改動后的影響范圍,緊急時多采用創建子類覆蓋父類函數的辦法,但這不是長久之計,在足夠覆蓋率的單元測試支持下,跑一下單元測試就知道某個函數改動后的影響,可以放心地修改基類。
美團的Android單元測試編寫流程如圖4所示。
圖4 美團Android單元測試編寫流程
原文轉自:http://tech.meituan.com/Android_unit_test.html