Android Spinner在Espresso测试中点击后立即被解雇

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Spinner在Espresso测试中点击后立即被解雇相关的知识,希望对你有一定的参考价值。

我有一套在android上运行的Espresso测试。它们通常没有问题。然而,间歇性地,他们无法在Spinner中验证日期。通过观察,我发现Spinner一旦被轻拍就会被解雇。

正在运行的代码是:

public static void selectFromComboBox(String prompt, String toSelect) {
    onView(allOf(withId(R.id.combo_box_entry), hasSibling(withText(prompt)))).perform(click());
    onData(Matchers.allOf(is(instanceOf(String.class)), is(toSelect))).perform(click());
}

当我运行完全相同的测试而没有任何变化时,我有时会得到错误

android.support.test.espresso.PerformException: Error performing 'load adapter data' on view 'is assignable from class: class android.widget.AdapterView'.

我记录了两次传递的屏幕并且失败了,发现在失败时,Spinner的列表几乎在打开时被解雇,这似乎是造成问题的原因。

在通过方案和失败方案之间,日志输出实际上看起来没有任何差异。有没有人在此之前看过这个或者知道一个工作或者知道到底发生了什么?

答案

不是最漂亮的解决方案,但我解决这个问题的方法是在打开菜单后添加一个简单的500毫秒等待

以上是关于Android Spinner在Espresso测试中点击后立即被解雇的主要内容,如果未能解决你的问题,请参考以下文章

使用对象列表填充 Android Spinner

Espresso - 如何定位并单击ListView中的第一个项目

手机睡着的浓缩咖啡测试

Espresso Android,点击 WebView 元素错误

Android Espresso单元测试

Android测试:Espresso 自动化测试