को समाप्त करने के लिए यूआई की प्रतीक्षा नहीं कर रहा है मेरे पास एक परीक्षण है जिसे android.support.v7.preference.ListPreference संवाद खोलने की आवश्यकता है, एक विकल्प का चयन करें, NavDrawer खोलें और दराज से किसी आइटम का चयन करें।एंड्रॉइड एस्प्रेसो
संवाद इस तरह परिभाषित किया गया है:
<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" />
एस्प्रेसो इस तरह यह खोलता है:
onView(withText(mActivityRule.getActivity().getResources().getString(R.string.pref_title_VALUE))
.perform(click());
यह ListPreference खोलने करता, लेकिन यह ब्लॉक नहीं करता और परीक्षण में अगली पंक्ति तुरंत चलाता है।
// click on setting
onView(withText(VALUE_IN_LIST_PREFERENCE))
.perform(click());
के बाद से है कि तुरंत होता है, संवाद प्रदर्शित नहीं हुआ है और withText (VALUE_IN_LIST_PREFERENCE) कुछ भी नहीं मेल खाता है।
यदि मैं उपरोक्त रेखा पर रुकने वाले डीबगर के साथ कदम उठाता हूं, तो संवाद समय में दिखाई देगा और कोड काम करेगा।
उसी समस्या तब एनएवी ड्रॉवर के साथ होती है। यह इस तरह से खोला है:
// open the nav drawer
onView(withId(R.id.drawer_layout))
.perform(DrawerActions.open());
और एक आइटम पर क्लिक किया जाता है:
// click on phase 1
onView(withId(R.id.nav_view))
.perform(NavigationViewActions.navigateTo(R.id.nav_ITEM));
ListPreferences साथ के रूप में, परीक्षण कोड यूआई खत्म और इतने onView को कॉल के विफल होने की प्रतीक्षा किए बिना जारी है।
मैं सो थ्रेड और डाल यहाँ https://stackoverflow.com/a/22563297/4950621
जवाब निम्नलिखित दोनों ही मामलों में की कोशिश की है, फिर भी संवाद तक थ्रेड सो किया जाता है और देखने परीक्षण तुरंत चलाता है प्रकट नहीं होता है। तो, समस्या केवल देरी है, हल नहीं किया गया है।
मैं कैसे सुनिश्चित करूं कि आवश्यक दृश्य दिखाई देने तक एस्प्रेसो परीक्षण नहीं चल रहे हैं?