e6eec328 dfcc 421d b7cf 3a65675ea693

안드로이드 앱 개발에서 테스트는 앱의 품질을 보장하는 핵심적인 부분이다.

특히 UI 테스트는 사용자와 직접 상호작용하는 부분이므로 중요하다.

이번 글에서는 안드로이드 UI 테스트 자동화를 위한 강력한 도구인 Espresso에 대해 Kotlin 예제와 함께 알아본다.

Espresso란?

Espresso는 안드로이드 UI 테스트를 위한 프레임워크로, UI 컴포넌트의 상태와 상호작용을 테스트하는 데 사용된다.

Espresso는 안드로이드 앱 내의 실제 환경에서 테스트를 실행하며, 다양한 UI 요소와 상호 작용할 수 있다.

Espresso 사용하기: Kotlin 예제

1. 라이브러리 추가

dependencies {
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.x.x'
}

2. 간단한 UI 테스트 작성

우선, 로그인 버튼을 테스트하려고 한다.

로그인 버튼이 화면에 표시되는지 확인하는 테스트를 작성한다.

@RunWith(AndroidJUnit4::class)
class LoginActivityTest {

    @Rule
    @JvmField
    val activityRule = ActivityTestRule(LoginActivity::class.java)

    @Test
    fun loginButtonDisplayed() {
        onView(withId(R.id.loginButton))
            .check(matches(isDisplayed()))
    }
}

3. UI 상호작용 테스트

이제 사용자 이름과 비밀번호를 입력하고 로그인 버튼을 클릭하는 테스트를 작성한다.

@Test
fun userCanEnterUsernameAndPassword() {
    onView(withId(R.id.usernameEditText))
        .perform(typeText("testUser"), closeSoftKeyboard())

    onView(withId(R.id.passwordEditText))
        .perform(typeText("testPassword"), closeSoftKeyboard())

    onView(withId(R.id.loginButton)).perform(click())
}

Espresso의 장점

  1. 직관성: Espresso의 API는 명확하고 직관적으로 작성되어 있어, 테스트 코드가 읽기 쉽다.
  2. 신뢰성: Espresso는 UI 이벤트가 모두 완료될 때까지 기다렸다가 테스트를 실행하기 때문에 신뢰성이 높다.
  3. 확장성: 다양한 라이브러리와 플러그인과의 호환성이 좋아, 확장성이 뛰어나다.

마치며

Espresso는 안드로이드 UI 테스트 자동화의 필수 도구로, 앱의 품질을 높이는 데 큰 도움을 준다.

Espresso를 활용하면, 앱의 신뢰도를 높이고 개발 생산성을 향상시킬 수 있다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다