Espresso를 사용하면 간결하고 아름답고 신뢰할 수 있는 Android UI 테스트를 작성할 수 있습니다. 다음 코드 스니펫은 Espresso 테스트의 예를 보여줍니다. 핵심 API는 작고 예측 가능하며 배우기 쉽지만 맞춤설정할 수 있도록 공개되어 있습니다. Espresso 테스트는 방해가 되는 상용구 콘텐츠, 맞춤 인프라 또는 복잡한 구현 세부정보에 주의를 분산시키지 않고 기대 수준, 상호작용 및 어설션을 명확하게 설명합니다. Espresso 테스트는 최적의 방식으로 빠르게 실행됩니다. Espresso 테스트는 애플리케이션 UI가 사용되지 않을 때 애플리케이션 UI에서 조작하고 어설션하는 동안 대기, 동기화, 절전 모드 및 폴링에서 벗어날 수 있도록 합니다. 참가 대상Espresso는 자동화된 테스트가 개발 수명 주기의 핵심적인 부분이라고 생각하는 개발자를 타겟으로 합니다. Espresso는 블랙박스 테스트에 사용될 수 있지만 테스트 중인 코드베이스에 익숙한 사용자는 Espresso의 전체 기능을 사용할 수 있습니다. 동기화 기능테스트가
Espresso는 이러한 검사를 이행하여 지정된 시간에 하나의 UI 작업 또는 어설션만 발생할 수 있는 가능성을 크게 높입니다. 이 기능은 보다 안정적이고 신뢰할 수 있는 테스트 결과를 제공합니다. 패키지
출시 노트를 참조하여 최신 버전에 관해 자세히 알아볼 수 있습니다. 참고 자료Android 테스트에서 Espresso를 사용하는 방법에 관한 자세한 내용은 다음 자료를 참조하세요. 샘플
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates. Last updated 2020-06-15 UTC. [{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"필요한 정보가 없음" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"너무 복잡함/단계 수가 너무 많음" },{ "type": "thumb-down", "id": "outOfDate", "label":"오래됨" },{ "type": "thumb-down", "id": "translationIssue", "label":"번역 문제" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"샘플/코드 문제" },{ "type": "thumb-down", "id": "otherDown", "label":"기타" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"이해하기 쉬움" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"문제가 해결됨" },{ "type": "thumb-up", "id": "otherUp", "label":"기타" }] Espresso Test Recorder 도구를 사용하면 테스트 코드를 전혀 작성하지 않고도 앱의 UI 테스트를 만들 수 있습니다. 테스트 시나리오를 기록하여 기기와의 상호작용을 기록하고 앱의 특정 스냅샷에서 UI 요소를 확인하는 어설션을 추가할 수 있습니다. 그러면 Espresso Test Recorder는 저장된 기록을 가져와서 앱을 테스트하는 데 실행할 수 있는 상응하는 UI
테스트를 자동으로 생성합니다. Espresso Test Recorder는 AndroidX 테스트에 있는 API인 Espresso 테스트 프레임워크에 기반하여 테스트를 작성합니다. Espresso API를 통해 개발자는 사용자 작업에 기반한 간결하고 신뢰할 수 있는 UI 테스트를 만들 수 있습니다. 이 구조에서는 기본 앱의 활동과 뷰에 직접 액세스하지 않고도 기대치, 상호작용 및 어설션을 지정함으로써 테스트의 취약성을 예방하고 테스트 실행 속도를 최적화합니다. 테스트 기기에서 애니메이션 사용 중지예상치 못한 결과를 예방하려면 Espresso Test Recorder를 사용하기 전에 테스트 기기에서 애니메이션을 사용 중지해야 합니다. 단일 앱의 UI 테스트 페이지에 나온 'Espresso 설정' 안내를 따릅니다. 단, Espresso 라이브러리의 종속 항목 참조는 기록 저장 시 Test Recorder에서 자동으로 설정되므로 수동으로 설정할 필요가 없습니다. 이들 단계는 주어진 프로젝트에서 한 번만 수행되어야 합니다. Espresso 테스트 기록Espresso 테스트는 두 가지 주요 구성요소 즉, UI 상호작용 및 View 요소의 어설션으로 구성됩니다. UI 상호작용에는 사람이 앱과 상호작용하는 데 사용할 수 있는 탭 및 입력 작업이 포함됩니다. 예를 들어 메모 테스트 앱을 위한 Espresso 테스트는 버튼을 클릭하고 새 메모를 작성하기 위한 UI 상호작용을 포함할 수도 있지만, 버튼 존재와 메모 내용을 확인하기 위해 어설션을 사용할 수 있습니다. 이 섹션에서는 Espresso Test Recorder를 사용하여 두 가지 테스트 구성요소를 만드는 방법과 완료된 기록을 저장하여 테스트를 만드는 방법에 대해 다룹니다. UI 상호작용 기록Espresso Test Recorder에서 테스트 기록을 시작하려면 다음 단계를 진행하세요.
참고: 상호작용 로깅을 시작하기 전에 'Waiting for Debugger' 또는 'Attaching Debugger'라는 대화상자가 기기에 표시될 수도 있습니다. Espresso Test Recorder는 디버거를 사용하여 UI 이벤트를 기록합니다. 디버거가 연결되면 대화상자가 자동으로 닫히므로 Force Close를 누르지 마세요. 기록된 상호작용이 Record Your Test 창의 기본 패널에 나타납니다(아래 그림 1 참조). 테스트를 실행하면 Espresso 테스트는 이러한 동작을 동일한 순서로 실행하려고 시도합니다. 그림 1. 로깅된 UI 상호작용이 있는 Record Your Test 창 UI 요소를 확인하기 위한 어설션 추가하기어설션은 다음과 같은 세 가지 기본 유형을 통해 View 요소의 존재 여부나 그 내용을 확인합니다.
어설션을 테스트에 추가하려면 다음 단계를 진행하세요.
그림 2의 스크린샷은 'Happy Testing!'이라는 메모의 제목을 확인하기 위해 생성 중인 'text is' 어설션을 보여줍니다. 그림 2. View 요소를 선택한 후의 Edit assertion 상자(빨간색) 어설션을 만드는 중에 계속해서 앱과 상호작용할 수 있으며, 어설션 패널이 Record Your Test 창 안에서 계속 열려 있더라도 상호작용할 수 있습니다. Espresso Test Recorder는 계속해서 작업을 로깅하지만, 수정 중인 어설션은 저장된 후 이러한 상호작용보다 앞서 나타납니다. 이 어설션의 스크린샷에서는 개발자가 Add Assertion 버튼을 눌렀을 때 기기나 에뮬레이터에 있던 레이아웃도 유지합니다. 기록 저장하기앱 상호작용과 어설션 추가를 마친 후에는 다음 단계에 따라 기록을 저장하고 Espresso 테스트를 생성합니다.
로컬로 Espresso 테스트 실행하기Espresso 테스트를 실행하려면 Android 스튜디오 IDE의 왼쪽에 있는 Project 창을 사용합니다.
IDE 하단의 Run 창에서 테스트 진행 상황을 모니터링합니다. Android 스튜디오에서는 프로젝트의 전체 빌드를 실행하고 그림 3과 같이 Run 창에서 테스트 이름이 있는 탭을 엽니다. 이 탭에서는 테스트의 통과 또는 실패 여부와 테스트 실행에 걸린 시간을 확인할 수 있습니다. 테스트가 끝나면 탭에 'Tests ran to completion'이 기록됩니다. 그림 3. Espresso 테스트를 로컬로 실행한 후 Run 창의 샘플 출력 테스트 실행 구성을 작성하는 방법에 관한 자세한 내용은 실행/디버그 구성 생성 및 수정하기에서 '클래스 또는 메서드의 테스트 구성 정의' 섹션을 참고하세요. Android용 Firebase Test Lab에서 Espresso 테스트 실행하기Espresso Test Recorder에서 생성된 테스트를 Firebase Test Lab에서 사용하여 클라우드에서 앱을 수백 개의 기기 설정에 테스트할 수 있습니다. Spark 요금제의 무료 일일 할당량 이내라면 Test Lab에서 앱을 테스트하는 데 비용이 들지 않습니다. Espresso 테스트를 Firebase Test Lab에서 실행하려면 앱의 Firebase 프로젝트를 만든 후 안내에 따라 Android 스튜디오에서 Firebase Test Lab으로 테스트를 실행합니다. 그림 4. 여러 기기에서 Firebase Test Lab으로 테스트를 실행한 후 Run 창의 샘플 출력 Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates. Last updated 2022-07-13 UTC. [{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"필요한 정보가 없음" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"너무 복잡함/단계 수가 너무 많음" },{ "type": "thumb-down", "id": "outOfDate", "label":"오래됨" },{ "type": "thumb-down", "id": "translationIssue", "label":"번역 문제" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"샘플/코드 문제" },{ "type": "thumb-down", "id": "otherDown", "label":"기타" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"이해하기 쉬움" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"문제가 해결됨" },{ "type": "thumb-up", "id": "otherUp", "label":"기타" }] |