Espresso

Espresso를 사용하면 간결하고 아름답고 신뢰할 수 있는 Android UI 테스트를 작성할 수 있습니다.

다음 코드 스니펫은 Espresso 테스트의 예를 보여줍니다.

Kotlin

    @Test
    fun greeterSaysHello() {
        onView(withId(R.id.name_field)).perform(typeText("Steve"))
        onView(withId(R.id.greet_button)).perform(click())
        onView(withText("Hello Steve!")).check(matches(isDisplayed()))
    }
    

자바

    @Test
    public void greeterSaysHello() {
        onView(withId(R.id.name_field)).perform(typeText("Steve"));
        onView(withId(R.id.greet_button)).perform(click());
        onView(withText("Hello Steve!")).check(matches(isDisplayed()));
    }
    

핵심 API는 작고 예측 가능하며 배우기 쉽지만 맞춤설정할 수 있도록 공개되어 있습니다. Espresso 테스트는 방해가 되는 상용구 콘텐츠, 맞춤 인프라 또는 복잡한 구현 세부정보에 주의를 분산시키지 않고 기대 수준, 상호작용 및 어설션을 명확하게 설명합니다.

Espresso 테스트는 최적의 방식으로 빠르게 실행됩니다. Espresso 테스트는 애플리케이션 UI가 사용되지 않을 때 애플리케이션 UI에서 조작하고 어설션하는 동안 대기, 동기화, 절전 모드 및 폴링에서 벗어날 수 있도록 합니다.

참가 대상

Espresso는 자동화된 테스트가 개발 수명 주기의 핵심적인 부분이라고 생각하는 개발자를 타겟으로 합니다. Espresso는 블랙박스 테스트에 사용될 수 있지만 테스트 중인 코드베이스에 익숙한 사용자는 Espresso의 전체 기능을 사용할 수 있습니다.

동기화 기능

테스트가 onView()를 호출할 때마다 Espresso는 다음 동기화 조건이 충족될 때까지 상응하는 UI 작업 또는 어설션을 실행하기 위해 대기합니다.

  • 메시지 대기열이 비어 있습니다.
  • 현재 작업을 실행하는 AsyncTask 인스턴스가 없습니다.
  • 모든 개발자 정의 유휴 리소스가 비활성 상태입니다.

Espresso는 이러한 검사를 이행하여 지정된 시간에 하나의 UI 작업 또는 어설션만 발생할 수 있는 가능성을 크게 높입니다. 이 기능은 보다 안정적이고 신뢰할 수 있는 테스트 결과를 제공합니다.

패키지

  • espresso-core - 핵심 및 기본 View 매처, 작업, 어설 션이 포함되어 있습니다. 기초레시피를 참조하세요.
  • espresso-web - WebView 지원에 관한 리소스가 포함되어 있습니다.
  • espresso-idling-resource - 백그라운드 작업과 동기화하는 Espresso의 메커니즘입니다.
  • espresso-contrib - DatePicker, RecyclerViewDrawer 작업, 접근성 확인, CountingIdlingResource가 포함된 외부 참여입니다.
  • espresso-intents - 밀폐 테스트를 위해 인텐트를 검증하고 스터브 처리하는 확장 프로그램입니다.
  • espresso-remote - Espresso의 멀티 프로세스 기능의 위치입니다.

출시 노트를 참조하여 최신 버전에 관해 자세히 알아볼 수 있습니다.

참고 자료

Android 테스트에서 Espresso를 사용하는 방법에 관한 자세한 내용은 다음 자료를 참조하세요.

샘플