Android Expresso - 等待异步任务完成

时间:2017-07-17 16:44:33

标签: android android-asynctask expresso

我在操作栏上有许多带微调器的屏幕。当用户更改微调器选项时,下面的列表会刷新相应的数据。每当用户更改微调器选项时,该活动都会生成异步任务。但是,当测试在列表中查找特定帖子时,单击该选项时,我的expresso测试似乎失败了。如果我添加睡眠,它工作正常并找到帖子。如何让expresso测试等待异步任务?

1 个答案:

答案 0 :(得分: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);
}