我有许多屏幕,操作栏上有一个微调器。当用户更改微调器选项时,下面的列表将使用相应的数据进行刷新。每当用户更改微调器选项时,该活动都会生成异步任务。但是每当单击该选项时,我的 expresso 测试似乎都会失败,因为测试正在列表中查找特定帖子。如果我添加睡眠,它可以正常工作并找到帖子。如何使 expresso 测试等待该异步任务?
将 get 方法用于 AsyncTask,该方法(来自文档(:
如有必要,等待计算完成,然后检索其结果。
应该是这样的:
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);
}