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 테스트는 최적의 방식으로 빠르게 실행됩니다. 또한 대기, 동기화, 절전 모드 또는 애플리케이션을 조작하고 어설션하는 동안 UI가 대기 상태일 때의 UI입니다.

타겟층

Espresso는 개발자를 대상으로 하며, 이러한 개발자는 자동화된 테스트가 필수적인 부분입니다. 블랙박스에도 사용할 수 있지만 이 기능에 익숙한 사용자는 Espresso의 모든 기능을 사용할 수 있습니다. 테스트 중인 코드베이스입니다.

동기화 기능

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

  • 메시지 큐에는 Espresso가 즉시 실행해야 하는 메시지가 없습니다. 프로세스입니다
  • 현재 실행 중인 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를 사용하는 방법에 관한 자세한 내용은 확인할 수 있습니다

샘플