[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 요소 및 다이얼로그를 테스트하는 방법을 보여줍니다.