Android集成測試
Android集成測試主要是在單元測試的基礎上測試接口訪問或者異步任務是否正確,在移動鳳巢系統中,大概有30+個接口需要測試,他們都遵循一個特定的訪問模式:前臺的Activity獲取到觸發事件后,將它傳給這些接口,這些接口都是AsyncTask的實現——即后臺異步線程執行某個任務(一般是發送http請求到后端服務或者執行存取數據庫等耗時操作),完畢后調用回調函數,示意圖如下:
一、測試框架
對于Android中這種異步接口的自動化測試需要解決3個問題:
1)如何獲取到異步任務執行結果;
2)如何讓上層測試代碼盡量不處理任務等待;
3)如何處理需要登錄的接口。
對于問題1)每個異步任務在獲取結果后就直接調用onPostExecute()方法了,測試代碼獲取不到結果,所以必須有一個專門的樁Activity負責異步任務的執行并將結果暴露出來;
對于問題2)盡量將等待操作交給測試基類,上層測試代碼只需要執行被測邏輯;
對于問題3)采用模板模式,如果接口需要登錄則先執行登錄操作后再調用,整體解決方案如下:
其中樁Activity的邏輯如下,它實際決定接口的調用方式,如果被測接口需要登錄則先登錄后調用,如果不需要登錄則直接調用。
posted on 2013-03-12 10:46 順其自然EVO 閱讀(855) 評論(0) 編輯 收藏 所屬分類: android