シナリオ:AsyncTaskとAndroidのユニットテストとUIのアップデートソリューション
私はユニットテストに自分のアプリケーションののonClickハンドラをしようとしています。 OnclickはREST APIに対して簡単な検索を行い、結果を返し、UIを更新します。
詳細:
にOnclickはAsyncTaskを実行し、doInBackgroundは、REST APIを照会し、その結果を返します。 onPostExecuteは結果を受け取り、新しいListAdapterをデータと共にListViewに割り当てます。
問題:それは同じUIスレッドをブロックの上に呼び出しだから
onPostExecuteは、テストランナーでで呼び出されません。これに対処するためのパターンがいくつかあります。しかし、AsyncTaskをRunnableに配置し、LatchCountdownを使用して結果を待つと、CalledFromWrongThread例外が発生します。
UIアップデートを行うAsyncTaskの単体テストには良い解決策がありますか?それとも、私が実装できるよりテスト可能なデザインですか?
これは、私にとってActivityInstrumentationTestCaseのように聞こえる... – dmon
これはActivityInstrumentationTestCase2クラスで行われています。 – bcdennis72
あなたのasynctaskはうまく動くはずです... – dmon