[android] Espresso 테스트 데이터 모의

안드로이드 앱을 테스트할 때 종종 특정 상황에서 특정 데이터를 사용해야 할 때가 있습니다. Espresso 테스트를 작성할 때에도 실제 데이터를 사용하기보다는 모의(mocks) 데이터를 사용하는 것이 더욱 좋은 방법일 수 있습니다. 모의 데이터를 사용하면 테스트를 더 견고하게 만들고 실제 데이터에 의존하지 않는 장점이 있습니다.

모의 데이터 라이브러리 선택

모의 데이터 라이브러리는 여러 가지가 있지만, MockitoMockWebServer를 사용하는 것이 일반적입니다. Mockito는 자바에서 모의 객체를 생성하기 위한 라이브러리이고, MockWebServer는 안드로이드에서 네트워크 요청을 모의로 만드는 것을 도와주는 라이브러리입니다.

모의 데이터를 활용한 Espresso 테스트

가령 네트워크 요청을 테스트할 때, MockWebServer를 사용하여 실제 서버에 의존하지 않고 모의 응답을 만들어서 해당 응답이 예상대로 동작하는지 테스트할 수 있습니다. 또한, Mockito를 사용하여 모의 객체를 생성하여 기대되는 동작을 제어하고 모의 데이터를 반환하게 할 수 있습니다.

다음은 MockWebServer를 사용한 Espresso 테스트 예제입니다.

@RunWith(AndroidJUnit4.class)
public class NetworkTest {

    @Rule
    public MockWebServer server = new MockWebServer();

    @Test
    public void testNetworkRequest() {
        server.enqueue(new MockResponse().setBody("mock response data"));

        // 네트워크 요청을 보내고 모의 응답을 받아옴
        // ...

        onView(withId(R.id.textView)).check(matches(withText("mock response data")));
    }
}

위 예제에서 server.enqueue()를 통해 모의 응답을 설정하고, Espresso를 사용하여 해당 응답이 화면에 표시되는지를 테스트하고 있습니다.

더 많은 예제와 자세한 정보

모의 데이터를 활용한 안드로이드 테스트에 대한 더 많은 예제와 자세한 정보는 다음 리소스를 참고하세요.

안드로이드 Espresso 테스트에서 모의 데이터를 활용하면 실제 데이터에 의존하지 않고도 효과적으로 테스트할 수 있습니다. 모의 데이터를 사용하여 테스트를 보다 견고하게 만들고 안정적인 앱을 개발하는 데 도움이 될 것입니다.