在咖啡類: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()
。 如何使用Espresso測試功能onBackPressed()
? 謝謝!編輯: 這是我的錯誤。問題是,在我想要調用pressBack的Activity中,屏幕鍵盤已打開。當軟鍵盤打開時,按鈕不會調用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() –