验证是否显示视图即使片刻

时间:2016-03-30 04:52:42

标签: android android-testing android-espresso

我的代码中有一个带有相应API调用的登录UI,我想使用Espresso进行测试。当我单击登录按钮时,只要API调用正在执行,就会进行API调用并显示ProgressBar,然后一旦得到响应,它的可见性就会恢复。大多数情况下,调用是非常即时的,因此如果我在ProgressBar视图上检查isDisplayed(),我会得到错误。以下是代码 -

    onView(withId(R.id.edit_text_username)).perform(typeText("asd"));
    onView(withId(R.id.edit_text_password)).perform(typeText("asd"), closeSoftKeyboard());
    onView(withId(R.id.forward_button)).check(matches(isEnabled()));
    onView(withId(R.id.forward_button)).perform(click());

    onView(withId(R.id.progress_bar_gateway)).check(matches(isDisplayed()));

有没有办法检查ProgressBar可见性是否从已消失中切换 - >可见 - >走了吗?

1 个答案:

答案 0 :(得分:0)

你应该检查uiautomator - uiwatcher。 Uiautomator在仪器上运行。所以你可以将你的uiwatcher代码放入浓缩咖啡中。

现在出现在你的情况中 - 想法是在ProgressBar visibility中检测ui变化。注册此活动的观察者,您可以添加"what to do code" at gone -> visible -> gone

示例代码 -

public class watchProgressbar implements UiWatcher {

   public boolean checkForCondition() {
    //Add uiautomator code to detect the visibility change of pregress bar.
    //Add what you want to do when a state change is detected.

    }

}

希望这会有所帮助。example uiautomator和espresso一起使用。