2017-07-17 9 views
0

私は、アクションバーにスピナーを備えた多数の画面を持っています。ユーザーがスピナーオプションを変更すると、下のリストが適切なデータで更新されます。ユーザーがスピナーオプションを変更するたびに、アクティビティによって非同期タスクが生成されます。しかし、テストでリスト内の特定の投稿を検索しているときに、オプションがクリックされると、私のexpressoテストは失敗するようです。私が睡眠を追加すると、それはうまく動作し、ポストを見つける。その非同期タスクのためにエクスプレステストが待つようにするにはどうすればよいですか?Android Express - 非同期タスクが完了するまで待ちます

答えて

0

使用get method for an AsyncTaskた(docsから):

待機計算が完了し、その結果を取得するために、必要に応じ。

ようなものになるはずです。

try { 
    MyAsyncTask myTask = new MyAsyncTask(); 
    myTask.execute(myParamObject); 
    MyResultObject result = myTask.get(); 
} catch (CancellationException e) { 
    Log.e("TAG", e.getMessage(), e); 
} catch (InterruptedException e) { 
    Log.e("TAG", e.getMessage(), e); 
} catch (ExecutionException e) { 
    Log.e("TAG", e.getMessage(), e); 
} 
+0

おかげで、私はそれをしようとします。私はエクスプレステストを書くのが初めてです。このドキュメントでは、「デフォルトでは、現在のメッセージキューのUIイベントが処理されるのを待って、次のテスト操作に移る前にデフォルトのAsyncTasksが完了するのを待っています。ボタンクリックで非同期タスクが生成され、リスト内にエントリが存在するかどうかを確認する前に非同期タスクが完了するのを待つ必要があることをexpressoはどのように知っていますか? – user1018916

+0

さて、あなたのテストがどのようにセットアップされているかを知っている正確な理由を知るのは難しいです。おそらく、あなたの質問にいくつかのコードを追加すると、将来の回答者に役立つでしょう。 – petey

関連する問題