Android Compose Asynchronous UI test
사용 언어: Kotlin 1.9.0
사용 버전: Android Studio Hedgehog 2023.1.1
UI test는 Synchronization(동기식)으로 작동합니다. 그래서, 바로바로 테스트를 진행하죠.
하지만, 비동기 작업을 UI test(테스트)에서 확인할 때에는 문제가 발생합니다.
왜냐하면 test는 현재 작업 중인지 Idle(유휴) 상태인지 알 수 없기 때문에 바로 종료시키거든요.
여러 가지 방법이 있습니다.
https://developer.android.com/jetpack/compose/testing#sync-auto
이번 시간에 다뤄볼 방법은 waiting for conditions입니다.
사용 버전: Android Studio Hedgehog 2023.1.1
안드로이드 컴포즈 Asynchronous UI test를 알아보겠습니다.
UI test는 Synchronization(동기식)으로 작동합니다. 그래서, 바로바로 테스트를 진행하죠.
하지만, 비동기 작업을 UI test(테스트)에서 확인할 때에는 문제가 발생합니다.
왜냐하면 test는 현재 작업 중인지 Idle(유휴) 상태인지 알 수 없기 때문에 바로 종료시키거든요.
여러 가지 방법이 있습니다.
https://developer.android.com/jetpack/compose/testing#sync-auto
이번 시간에 다뤄볼 방법은 waiting for conditions입니다.
waitUntil
waitUntilAtLeastOneexists
waitUntilDoesNotExist
waitUntilExactlyOneExists
waitUntilNodeCount
waitUntil은 오작동을 일으킬 수 있다는 설명도 있네요.
사용법을 알아봅시다.
69번째 줄처럼 composeTestRule에다가 waitUntil을 사용하면 됩니다.
여기서는 waitUntilDoesNotExist인데 matcher에 적힌 것이 만족할 때까지 기다린다는 뜻입니다.
무한히 기다리는 것이 아니라 뒤에 적힌 timeoutMillis에 적힌 시간만큼 기다립니다.
여기서는 Pause라는 글을 가진 것이 존재하지 않을 때까지 기다리는데, 100초 동안 기다립니다.
테스트 화면입니다.
Progressbar가 완료되어 Pause가 사라질 때까지 기다리는 것을 볼 수 있습니다.
끝.
카테고리: Android, Compose
댓글
댓글 쓰기
궁금한 점은 댓글 달아주세요.
Comment if you have any questions.