एस्प्रेसो वर्ग में:Espresso.pressBack() onBackPressed फोन नहीं करता है()
@Rule
public IntentsTestRule<MainActivity> mIntentsRule = new IntentsTestRule<>(
MainActivity.class);
@Test
public void test_backButton(){
onView(withId(R.id.NEXT_ACTIVITY)).perform(scrollTo(), click());
Espresso.pressBack();
}
गतिविधि में:
@Override
public void onBackPressed() {
Log.d("TEST_pressBack", "inside onBackPressed()");
do_something();
super.onBackPressed();
}
@Override
public void finish() {
Log.d("TEST_pressBack", "inside finish()");
super.finish();
}
जब मैं एस्प्रेसो परीक्षण विधि कॉल निष्पादन सीधे finish()
को जाता है।
जब मैं Activity
में बैक बटन (मेरे हाथ से) दबाता हूं तो निष्पादन पहले onBackPressed()
और फिर finish()
में चला जाता है। एस्प्रेसो के साथ फ़ंक्शन onBackPressed()
का परीक्षण कैसे कर सकता हूं? धन्यवाद!
संपादित करें: यह मेरी त्रुटि है। समस्या यह थी कि गतिविधि में जिसमें मैं प्रेसबैक कॉल करना चाहता था ऑनस्क्रीन कीबोर्ड खोला गया था। जब सॉफ्ट कीबोर्ड खुलता है तो प्रेस-बटन बैकप्रेस पर कॉल नहीं करता है बल्कि इसके बजाय कीबोर्ड को प्रदर्शित नहीं करता है। मैं एक पंक्ति में दो pressBack() के साथ की कोशिश की और इसे सही ढंग से काम किया:
@Rule
public IntentsTestRule<MainActivity> mIntentsRule = new IntentsTestRule<>(
MainActivity.class);
@Test
public void test_backButton(){
onView(withId(R.id.NEXT_ACTIVITY)).perform(scrollTo(), click());
Espresso.pressBack();
//The extra pressBack()
Espresso.pressBack();
}
आप Espresso.closeSoftKeyboard() –