안드로이드/오류, 삽질 및 해결방법

[Android/Kotlin] Live Data 테스트 오류 (Method getMainLooper in android.os.Looper not mocked.)

감자 바보 2022. 4. 14. 22:34
반응형

Live Data 테스트 오류 (Method getMainLooper in android.os.Looper not mocked.)

 안드로이드 개발 중 TDD 개발 방식 연습 중 오류가 발생하였다. 알고 보니 라이브 데이터를 테스트하기 위한 설정이 잘 못 되어있었다.

 

 

발생 오류

 TDD 개발 방식 연습 중 아래와 같은 오류와 마주쳤다.

 

Method getMainLooper in android.os.Looper not mocked. See http://g.co/androidstudio/not-mocked for details. java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked.

 

 

문제 원인

 JUnit4 환경에서 라이브 데이터를 테스트하기 위해서는 필요한 것보다 전 버전의 디펜던시가 선언되어 있었다. 아래 코드는 프로젝트 생성 시 자동으로 선언되어 있었다.

//앱 수준 build.gradle
dependencies {
	testImplementation 'android.arch.core:core-testing:1.1.1'
}

 추가로 테스트 코드에 Rule을 추가해야 한다.

 

해결 방법

 

  문제 원인에 적힌 코드를 아래 코드로 변경해야한다.

//앱 수준 build.gradle
dependencies {
	testImplementation 'androidx.arch.core:core-testing:2.1.0'
}

 추가로 테스트 코드에 아래 Rule을 추가한다.

@get: Rule
var instantExecutorRule = InstantTaskExecutorRule()

 

참고

LiveData 테스트 하기 (velog.io)

 

LiveData 테스트 하기

LiveData 테스트, JUnit4, JUnit5, 확장함수 설정

velog.io