我们如何使用 espresso 来测试带有 PreferenceFragment 的 android 设置活动?

Posted

技术标签:

【中文标题】我们如何使用 espresso 来测试带有 PreferenceFragment 的 android 设置活动?【英文标题】:How can we use espresso to test an android settings activity with an PreferenceFragment? 【发布时间】:2016-06-19 12:19:59 【问题描述】:

我们如何在包含 PreferenceFragment 的 Settings 活动中使用 espresso onViewperform,如下所示: http://developer.android.com/guide/topics/ui/settings.html#Fragment

【问题讨论】:

【参考方案1】:

首选项位于列表中,因此您必须像这样查询特定首选项:

// Check if is displayed    
onData(allOf(is(instanceOf(Preference.class)), withKey("prefkey"))).check(matches(isDisplayed()));

// Perform click
onData(allOf(is(instanceOf(Preference.class)), withKey("prefkey"))).onChildView(withClassName(is(Switch.class.getName()))).perform(click());

我发现这篇文章很有帮助:http://www.winters.nz/2015/05/espresso-for-android-hints-properties.html

【讨论】:

链接好像坏了。也许修复它或删除它。【参考方案2】:

试试下面的逻辑

// Check if it is displayed    
onData(PreferenceMatchers.withKey(context.getResources().getString(R.string.prefkey))).check(matches(isDisplayed()));

【讨论】:

以上是关于我们如何使用 espresso 来测试带有 PreferenceFragment 的 android 设置活动?的主要内容,如果未能解决你的问题,请参考以下文章

Android Espresso - 如何为所有测试只运行一次设置

Espresso 不使用 Gif 动画运行 Activity 测试

如何在aws设备场中为android espresso每次测试运行后清除设备数据

如何使用 Espresso 测试片段是不是可见

如何使用 Espresso 测试特定活动?

Espresso:如何测试 SwipeRefreshLayout?