gpt4 book ai didi

android - 测试列表偏好

转载 作者:行者123 更新时间:2023-11-29 14:43:09 25 4
gpt4 key购买 nike

我正在尝试测试 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>

我想测试一下,当我更改显示的 ListPreference 中的数字时,SharedPreference 确实发生了变化。

现在,代码可以运行,我只是在测试部分阻塞。

这是我 Activity 的一部分:

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);
}
}
}

问题是我遇到了经典的“如果目标 View 不是 View 层次结构的一部分”错误。

欢迎任何帮助。谢谢!

最佳答案

@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());
}

希望这对您有所帮助...将您的共享偏好置于点击操作下

关于android - 测试列表偏好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53282141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com