[android] Espresso 테스트 사례

이 문서에서는 안드로이드 앱을 테스트하는 Espresso 라이브러리를 사용한 테스트 사례들을 살펴봅니다.

1. 테스트 세팅

우선, Espresso 라이브러리를 추가하여 필요한 의존성을 설정합니다.

androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
androidTestImplementation 'androidx.test:runner:1.4.0'

2. UI 요소 테스트

2.1. EditText 입력 테스트

@RunWith(AndroidJUnit4.class)
public class LoginActivityTest {

    @Rule
    public ActivityTestRule<LoginActivity> activityTestRule = new ActivityTestRule<>(LoginActivity.class);

    @Test
    public void testEditTextInput() {
        onView(withId(R.id.editTextUsername)).perform(typeText("testuser"));
        closeSoftKeyboard();
        onView(withId(R.id.buttonLogin)).perform(click());
    }
}

2.2. RecyclerView 아이템 클릭 테스트

@RunWith(AndroidJUnit4.class)
public class HomeActivityTest {

    @Rule
    public ActivityTestRule<HomeActivity> activityTestRule = new ActivityTestRule<>(HomeActivity.class);

    @Test
    public void testRecyclerViewItemClick() {
        onView(withId(R.id.recyclerView)).perform(RecyclerViewActions.actionOnItemAtPosition(0, click()));
    }
}

3. 다이얼로그 테스트

3.1. 다이얼로그 확인 버튼 테스트

@RunWith(AndroidJUnit4.class)
public class ConfirmDialogTest {

    @Test
    public void testDialogPositiveButton() {
        onView(withText(R.string.confirm))
            .inRoot(isDialog())
            .check(matches(isDisplayed()))
            .perform(click());
    }
}

위 예제들은 Espresso를 사용하여 안드로이드 앱의 UI 요소 및 다이얼로그를 테스트하는 방법을 보여줍니다.

참고 자료