Android Compose Asynchronous UI test

사용 언어: Kotlin 1.9.0
사용 버전: 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

댓글

이 블로그의 인기 게시물

Python urllib.parse.quote()

Android AVD Ram size change

Python OpenCV 빈 화면 만들기

KiCad 시작하기 7 (FreeRoute 사용하기 2)

Forensics .pyc 파일 .py로 복구하기

tensorflow tf.random.uniform()

Android Compose automation for getting localized images to use on Play Store app image

tensorflow tf.expand_dims()

Android Room database FTS

KiCad 시작하기 2 (PCB 만들기)