場景:使用AsyncTask和用戶界面更新解決方案的Android單元測試
我想單元測試我的應用程序的onClick處理程序。 Onclick根據REST API進行簡單搜索,返回結果並更新UI。
詳情:
的onclick執行的的AsyncTask,在doInBackground查詢REST API並返回結果。 onPostExecute接受結果並使用數據爲ListView分配一個新的ListAdapter。
問題:
的onPostExecute沒有得到通過測試運行器調用,因爲它是在相同的UI線程並阻止呼叫。有幾種模式可以解決這個問題。但是,如果我將AsyncTask放入Runnable中並使用LatchCountdown等待結果,則會得到CalledFromWrongThreadException。
是否有一個很好的解決方案單元測試一個AsyncTask的UI更新?或者我可以實現的更可測試的設計?
這聽起來更像是一個ActivityInstrumentationTestCase ... – dmon
這是在ActivityInstrumentationTestCase2類中完成的。 – bcdennis72
你的asynctask應該運行良好,然後...... – dmon