我们如何使用 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 设置活动?的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Spring Security 使用 OAUTH2 响应 Pre-Flight CORS 请求

如何使用实体框架测试视图?

gulp常用插件之gulp-beautify使用

如何将 Spring Security @Pre 和 @Post 注释与集合一起使用

运行Create-React-App测试不在Watch模式下

如何使用带有 locust 的 pythons 请求模块来加载测试一堆 api