android - 如何让 Robolectric 选择特定的微调项

标签 android robolectric android-testing

我是 Robolectric 的新手,遇到了障碍。我有一些自定义事件会在微调器中选择一个项目时触发,我想使用 robolectric 测试它。我看到 ShadowSpinner 类提供了诸如 stateSpinner.clickFirstItemContainingText 之类的辅助函数来单击特定项目。我用适当的值填充微调器,我测试将每个项目打印为

 for (int i = 0; i < spinner_items.length; ++i) {
            spinner_items[i] = (String) spinner.getAdapter().getItem(i);
        }
 System.out.println("Spinner Items "
                + Arrays.asList(spinner_items).toString());

但是,当我将 clickFirstItemContainingText 与其中一个 po 一起使用时 脉冲值,我得到一个 IllegalArgumentException。没有找到包含测试的项目,这很奇怪,因为上面的代码显示特定值确实存在。

任何帮助将不胜感激

最佳答案

我无法让 Robolectric 与微调器一起工作。问题是微调器中列表项的 View 将不存在于所选 View 之外。这可以看作是 spinner.getChildCount() 将始终返回 1。只需调用 spinner.setSelection()

关于android - 如何让 Robolectric 选择特定的微调项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16624767/

相关文章:

java - 为 androidTest sourceSet 配置 res srcDirs

android - 在将文本共享到应用程序后*仅*显示 toast (无 UI)?

android - 如何以编程方式检查android中是否有任何通知?

android - Robolectric 与 AndroidX fragment

java - 将 Roboeletric 与 Gradle 结合使用

android - viewpager ListView 的 Espresso 2.0 AmbiguousViewMatcherException

android - 我们如何才能自动只在较新的 Android 版本上运行测试?

android - 如何在 Android Studio 项目中包含库模块依赖项?

java - 通过反射获取 NavigationBarView.java 的 "pointer"

android - 如何使用gradle ktx为Android robolectric测试设置-noverify选项?