Bir android.support.v7.preference.ListPreference iletişim kutusu açmak, bir seçenek belirlemek, NavDrawer'ı açmak ve çekmeceden bir öğe seçmek için gereken bir sınava sahibim.Android Espresso, kullanıcı arayüzü için beklemiyor
iletişim böyle tanımlanır:
<android.support.v7.preference.ListPreference
android:defaultValue="@string/pref_default_VALUE"
android:entries="@array/pref_VALUE_entries"
android:entryValues="@array/pref_VALUE_values"
android:key="@string/pref_key_VALUE"
android:negativeButtonText="@null"
android:positiveButtonText="@null"
android:title="@string/pref_title_VALUE" />
Espresso şöyle açar:
onView(withText(mActivityRule.getActivity().getResources().getString(R.string.pref_title_VALUE))
.perform(click());
Bu ListPreference açmak yok, ama engellemez ve testte sonraki satır hemen çalışır.
// click on setting
onView(withText(VALUE_IN_LIST_PREFERENCE))
.perform(click());
o hemen gerçekleşir yana
iletişim görünmeyen ve withText (VALUE_IN_LIST_PREFERENCE) hiçbir şey eşleşir.Yukarıdaki satırda duraklatarak bir hata ayıklayıcısını kullanarak adım adım atarsam, iletişim kutusu zaman içinde görünür ve kod çalışır.
Aynı sorun, daha sonra nav çekmecesinde gerçekleşir. Böyle açtı:
// open the nav drawer
onView(withId(R.id.drawer_layout))
.perform(DrawerActions.open());
Ve bir öğe tıklandığında: ListPreferences olduğu gibi
// click on phase 1
onView(withId(R.id.nav_view))
.perform(NavigationViewActions.navigateTo(R.id.nav_ITEM));
test kodu kullanıcı arayüzü bitirmek ve böylece OnView çağrısı başarısız beklemeden devam eder. Konu uyku yapılan ve görünümü testi hemen çalıştırır kadar uyumaya Konu koyarak ve her iki durumda da burada https://stackoverflow.com/a/22563297/4950621
cevabını aşağıdaki denedi
Ancak iletişim görünmüyor. Yani, sorun sadece ertelendi, çözülmedi.
Espresso testlerinin gerekli Görünümler görünene kadar çalışmadığından nasıl emin olabilirim?