我有一個數據庫組件依靠AsyncTask
來檢索數據。一旦在應用程序中使用它將始終從UI線程調用,但我如何在JUnit測試中做到這一點,而不實例化一個Activity
(我只是沒有一個活動,也不應該創建一個僅用於測試目的)?如何在沒有Activity的情況下在Android JUnit測試中的UI線程中運行代碼?
runOnUiThread()
是一種活動方法,所以它不是一個選項。有沒有辦法通過從Android測試庫中獲取一個或通過實現MockUiThread來模擬UI線程?
我有一個數據庫組件依靠AsyncTask
來檢索數據。一旦在應用程序中使用它將始終從UI線程調用,但我如何在JUnit測試中做到這一點,而不實例化一個Activity
(我只是沒有一個活動,也不應該創建一個僅用於測試目的)?如何在沒有Activity的情況下在Android JUnit測試中的UI線程中運行代碼?
runOnUiThread()
是一種活動方法,所以它不是一個選項。有沒有辦法通過從Android測試庫中獲取一個或通過實現MockUiThread來模擬UI線程?
Android.OS.Handler應該能夠更新ui。
要使用你要繼承它,並在此改變的handleMessage()的處理來處理消息
更新:
我使用MonoDroid的,所以我不知道這是否是完全翻譯的,但是,
您可以使用
new Handler(context.getMainLooper()).post(runnable);
謝謝,它也適用於普通的Android。 :)在另一個線程中,我讀到我真正必須做的是在創建任何其他線程之前在UI線程中實例化一個AsyncTask,並且以下線程將自動知道UI線程,它似乎很好用!謝謝。 – 2011-04-27 06:32:44
這是很好的信息。我用Send來獲取消息。 – vlad259 2012-01-18 16:41:00
什麼是基類測試的? – 2011-04-26 14:03:35
'AndroidTestCase' – 2011-04-27 06:33:46