jer*_*myb 1 android android-testing android-espresso
我正在尝试测试android偏好设置,而我对如何实现该结果感到有些困惑。
这是我的偏爱
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<ListPreference
android:id="@+id/numberListPreference"
android:defaultValue="3"
android:entries="@array/number_text"
android:entryValues="@array/number_value"
android:key="@string/pref_key"
android:summary="@string/pref_summary"
android:title="@string/pref_title" />
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
我想测试一下,当我更改显示的ListPreference中的数字时,实际上已更改了SharedPreference。
现在,代码可以正常工作了,我只是阻塞了测试部分。
这是我活动的一部分:
public class SettingActivity extends AppCompatActivity implements
SharedPreferences.OnSharedPreferenceChangeListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager()
.beginTransaction()
.replace(android.R.id.content, new SettingsFragment())
.commit();
}
public static class SettingsFragment extends PreferenceFragment {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我遇到经典的“如果目标视图不属于视图层次结构”错误。
欢迎任何帮助。谢谢 !
小智 6
@Test
public void clickListPreference() throws Exception{
// Check if it is displayed
Context appContext = InstrumentationRegistry.getTargetContext();
onData(allOf(
is(instanceOf(Preference.class)),
withKey(appContext.getResources().getString(R.string.pref_key))))
.check(matches(isDisplayed()));
// Check if click is working
onData(allOf(
is(instanceOf(Preference.class)),
withKey(appContext.getResources().getString(R.string.pref_key))))
.onChildView(withText(appContext.getResources()
.getString(R.string.pref_title))).perform(click());
}
Run Code Online (Sandbox Code Playgroud)
希望这对您有帮助...将您的共享首选项置于点击操作下
| 归档时间: |
|
| 查看次数: |
164 次 |
| 最近记录: |