我正在使用Espresso测试应用程序。该场景是当用户点击“下载”按钮时,数据(音乐/文件/图像等)开始从互联网下载并且UI显示进度条。用户应该能够单击相同的按钮来暂停下载。测试代码非常简单:
// click to start download
1) onView(withId(R.id.actionBtn)).perform(click());
// now either monitor the progress bar or simply click the same btn again to pause the download
2) onView(withId(R.id.actionBtn)).perform(click());
然而,使用Espresso,似乎2)click()在下载完成之前不会生效。即不可能在中间“暂停”下载。
我理解“默认情况下,Espresso会等待当前消息队列中的UI操作进行处理,并且默认AsyncTasks(与默认的AsyncTask线程池同步)在完成下一个测试操作之前完成。”我假设在这种情况下,UI正忙着下载和更新进度条,直到下载完成,UI线程才会空闲,让第二个Espresso操作执行?
但是,如果我确实需要测试“暂停”,并且说,还要监控进度条以暂停,比如说下载20%,有没有办法使用Espresso来解决它?
我确实读过有关闲置资源的内容但不确定它是否可以或如何在此处应用。任何建议都表示赞赏。