Android Эспрессо-тест, чтобы проверить, отображается ли фрагмент настроек - PullRequest
0 голосов
/ 05 марта 2020

Как я могу утверждать, что фрагмент настроек (PreferenceFragmentCompat) отображается в AndroidX Espresso?

xml / предпочтений. xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:key="@string/key_preference">
    <PreferenceCategory
        android:key="game"
        android:title="Game">
        <DropDownPreference
            android:key="@string/key_game_time"
            android:title="@string/time_title"
            android:summary="@string/time_summary"
            android:defaultValue="5"
            android:entries="@array/max_duration_entries"
            android:entryValues="@array/max_duration_values"/>
        <DropDownPreference
            android:key="board_size"
            android:title="@string/size_title"
            android:summary="@string/size_summary"
            android:defaultValue="4"
            android:entries="@array/board_size_entries"
            app:entryValues="@array/board_size_values"/>
    </PreferenceCategory>
</PreferenceScreen>

Контрольный пример:

@Test
public void MainMenuToSettingsDirection(){
    onView(withId(R.id.btn_open_settings)).perform(click());
    onData(is(instanceOf(Preference.class))).atPosition(0).check(matches(isCompletelyDisplayed()));
    Espresso.pressBack();
    onView(withId(R.id.main_menu)).check(matches(isDisplayed()));
}

Но тест не пройден со следующей ошибкой:

androidx.test.espresso.AmbiguousViewMatcherException: 'is assignable from class: class android.widget.AdapterView' matches multiple views in the hierarchy.
Problem views are marked with '****MATCHES****' below.

Я много искал решение, но у меня ничего не работает.

Заранее благодарим за ваш вклад и комментарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...