El servidor falso solicita pruebas de interfaz de usuario de Android Espresso

Estoy usando Espresso para escribir pruebas de IU para mi aplicación de Android y me gustaría burlarme de las solicitudes http usando MockWebServer. Necesito burlarme de las respuestas de autenticación e iniciar sesión en el usuario antes de ejecutar las pruebas.

¿Hay alguna manera de hacer que la aplicación use mockwebserver para que, en lugar de hacer solicitudes reales, pueda usar respuestas en cola en mockwebserver?

Hasta ahora tengo:

public class AuthenticationTest {

@Rule
public ActivityTestRule<Authentication> mActivityTestRule = new ActivityTestRule<>(Authentication.class);

private  Authentication activity;
private MockWebServer server;

@Before
public void signin() throws Exception {
    server = new MockWebServer();
    server.start();
    activity = mActivityTestRule.getActivity();
    MyApplication.State state = activity.getState();

    String serverUrl = server.url("/").toString();

    // Here is where I have a problem. How to force client to use mock server?

}

@Test
public void firstTest() {
    String contentType = "Content-type: application/json";
    MockResponse r1 = new MockResponse().setResponseCode(200).setBody("example_body").addHeader(contentType);
    server.enqueue(r1);

    // typing credentials and pressing "Sign in" button, which should use mocked server's response:

    ViewInteraction email = onView(allOf(withId(R.id.emailAddress), isDisplayed()));
    email.perform(replaceText("[email protected]"), closeSoftKeyboard());
    ViewInteraction password = onView(allOf(withId(R.id.password), isDisplayed()));
    password.perform(replaceText("some_password"), closeSoftKeyboard());
    ViewInteraction signin = onView(allOf(withId(R.id.signInButton), withText("Sign In"), isDisplayed()));
    button2.perform(click());
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta