안드로이드/안드로이드 개발
테스트 코드, ViewModel.launch 의 delay 이슈
이우찬
2023. 6. 1. 12:01
반응형
ViewModel의 테스트 코드를 짜다가 ViewModel.launch에 delay가 있을경우, 시간차 문제로 테스트 코드가 도달하지 못하는 문제를 마주했다.
advanceUntilIdle() 를 사용하면 해결될줄 알았건만 애석하게도 테스트코드는 계속 delay()의 다음으로 도달하지 못했다.
곰곰히 생각해보니 결국 Coroutine의 Context 와 관련된 문제일것 같아서 내 코드를 훑어보니, 아무생각없이 @Before에 넣어둔 아래 코드가 문제였다.
Dispatchers.setMain(Dispatchers.Unconfined)
StandardTestDispatcher() 로 교체
Dispatchers.setMain(StandardTestDispatcher())
이후 advanceUntilIdle() 가 정상 동작하는 것을 확인 완료.
반응형