In Espresso class:

```
 @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();
}

```

In Activity:

```
 @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();

}

```

When I call the Espresso test method the execution goes directly to `finish()`.

When I press the back button (with my hand) in the `Activity` the execution goes firstly in `onBackPressed()` and then to `finish()`. 
How can I test the function `onBackPressed()` with Espresso?
Thanks!

EDIT:
It is my error. The problem was that in Activity in which I wanted to call pressBack the onscreen keyboard was opened. When the soft keyboard is open then the press-button does not call onBackPressed but instead makes the keyboard non-displayed. I tried with two pressBack() in a row and it worked correctly:

```
    @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();

}

```