如何在Espresso中避免异步操作问题



我有一个Espresso的测试用例,我在第一行检查对话框是否显示

onView(withText(R.string.dialog_title)).check(matches(isDisplayed()));

,然后点击按钮关闭对话框:

onView(withText(R.string.negative_button)).perform(click());

问题是,click操作总是在check操作之前执行,因为这两个操作是异步执行的。如何避免这个问题,并保持在测试用例中编写的执行行顺序,当我不需要异步执行操作时?

您可以尝试自定义一个IdlingResource类,它将等待某个条件,直到View组件完全加载,然后才继续检查或执行操作。重载isIdleNow方法,该方法只有在视图已经加载(或其他需要满足的条件)时才返回true。

最新更新