मैं के साथ एक एस्प्रेसो परीक्षण के हिस्से के रूप में एक EditText
अद्यतन करने के लिए प्रयास कर रहा हूँ के साथ एक EditText अपडेट कर रहा है:एस्प्रेसो
onView(allOf(withClassName(endsWith("EditText")), withText(is("Test")))).perform(clearText())
.perform(click())
.perform(typeText("Another test"));
हालांकि मैं निम्न त्रुटि प्राप्त:
com.google.android.apps.common.testing.ui.espresso.NoMatchingViewException: No views in hierarchy found matching: (with class name: a string ending with "EditText" and with text: is "Test")
परीक्षण टूट तक लाइन मैं देख सकता हूं कि यह clearText()
करने के बाद होता है, इसलिए मुझे लगता है कि प्रत्येक perform
से पहले मैचर्स को फिर से चलाया जा रहा है और दूसरी क्रिया से पहले विफल हो जाता है। यद्यपि यह समझ में आता है, यह मुझे एस्प्रेसो का उपयोग करके EditText
को अपडेट करने के तरीके के बारे में कुछ उलझन में डाल देता है। मुझे यह कैसे करना चाहिए?
ध्यान दें कि मैं इस परिदृश्य में संसाधन आईडी या इसी तरह का उपयोग नहीं कर सकता हूं और सही दृश्य की पहचान करने के लिए ऊपर दिखाए गए संयोजन का उपयोग करना होगा।
प्रतिक्रिया के लिए धन्यवाद देख सकते हैं। दुर्भाग्यवश गतिविधि में कई संपादन टेक्स्ट हैं, जो प्रोग्राम के बिना प्रोग्राम किए गए हैं, इसलिए इन सुझावों में से कोई भी काम नहीं करेगा। – jgm
मैं देखता हूं। शायद आप उस टैग के आधार पर आपके द्वारा बनाए गए प्रत्येक संपादन टेक्स्ट में एक टैग सेट कर सकते हैं और दृश्य ढूंढ सकते हैं। टैग का उपयोग केवल परीक्षण के लिए किया जा सकता है, लेकिन यह आपको कम से कम संपादन टेक्स्ट फ़ील्ड को अलग करने के लिए कुछ देगा। फिर फिर, यह आपके प्रश्न के अंत में बताई गई शर्त का उल्लंघन कर सकता है (मैंने जवाब देने से पहले उस हिस्से को अनदेखा किया)। – Maxwell