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()

Python OpenCV 빈 화면 만들기

Python bytes.fromhex()

Android AVD Ram size change

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

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

About Subnet Mask App

tensorflow tf.expand_dims()

tensorflow tf.constant

Hand Counter App