0

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

4

1 回答 1

0

对 AsyncTask使用get 方法(来自文档):

如有必要,等待计算完成,然后检索其结果。

应该是这样的:

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);
}
于 2017-07-17T17:41:04.087 回答