Android Unit tests with an android dependency

사용 버전: Android Studio Koala 2024.1.1

안드로이드 Unit tests with an android dependency를 알아보겠습니다.


Unit(유닛) test(테스트) 또는 Local(로컬) test는 JVM에서 실행됩니다. 즉, Android와 관련된 패키지가 있다면 정상적으로 작동하지 않는다는 얘기입니다.


제 앱에 Unit test를 추가하다가 발견한 문제입니다.

Domain(도메인)에 있는 Usecase(유즈케이스)가 test에 사용되었습니다.
import android.net.InetAddresses
import android.os.Build

IP(아이피) 주소를 확인하기 위한 InetAddresses와 OS(운영체제)의 SDK(개발자 도구) 버전을 확인하기 위한 Build.VERSION.SDK_INT를 사용하였습니다.
보시다시피 android에 dependency(의존성)를 가집니다.


이러한 것을 해결하는 방법으로는 Mockito(모키토)를 사용하거나 android 의존성을 없애거나, Instrumented(계측) test에서 test를 진행하는 것입니다.

저는 InetAddresses를 Guava 라이브러리로 대체하며 os.Build도 같이 제거하였습니다.
이렇게 제거하니 test가 정상적으로 작동되더군요.

import com.google.common.net.InetAddresses


끝.

카테고리: Android

댓글

이 블로그의 인기 게시물

Python urllib.parse.quote()

iOS Error Undefined symbol Testing.Trait

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

KiCad 시작하기 4 (기존 회로도 수정 및 추가)

tensorflow tf.expand_dims()

일본어 문장부호

음악 총보(Score), 파트보(Part)

Forensics 인터넷 다운로드 파일 출처 확인하기

Android Notification with Full Screen

Android Compose Coil library