티스토리 뷰
안드로이드에 대한 단위테스트는 Espresso, Android JUnit4 등이 있음.
여기서는 기능을 테스트하는 AndroidJUnit4에 대해서 알아봄.
* 참고 : 안드로이드의 자원을 사용하거나, UI 테스트, 프레임워크와 종속성을 갖는 경우 등에 대한 테스트는 안드로이드 개발 문서를 참고하여 테스트를 진행해야 함..... ( 의존성 없는 메소드에 대한 리턴값을 확인함 )
https://developer.android.com/training/testing/unit-testing/local-unit-tests?hl=ko
로컬 단위 테스트 빌드 | Android 개발자 | Android Developers
테스트를 더 빠르게 실행해야 하고 실제 기기에서 테스트를 실행하는 것과 관련된 충실도와 신뢰도가 필요하지 않은 경우 로컬 단위 테스트를 사용하여 앱 로직을 평가할 수 있습니다. 이 접근 방식에서는 일반적으로 Robolectric 또는 모의 프레임워크(예: Mockito)를 사용하여 종속성 관계를 처리합니다. 일반적으로 테스트와 관련된 종속성 유형에 따라 사용하는 도구가 결정됩니다. Android 프레임워크 종속성, 특히 프레임워크와의 복잡한 상호작용을 만
developer.android.com
1. 단위테스트를 수행할 테스트 라이브러리가 필요
- build.gradle
: android{defaultConfig{ testInstrumenttaionRunner "androidx.test.runner.AndroidJUnitRunner"}} 추가
: junit, androidx.test.ext 라이브러리 추가


2. 테스트하고자 하는 기능
- 테스트하고자 하는 기능은 구현한 클래스 내에 getRepeatAlarmTime 메소드임

3. 테스트 클래스 만들기
- android project 생성하면 "src > androidTest > java > 프로젝트 명" 에 Test할 수 있는 클래스를 생성함
- RepeatAlarmTimeSetTest 클래스 생성
* @RunWith(AndroidJUnit4.class) 를 추가하고, @Test 할 메소드 생성

***************추가
단순 기능에 대한 단위 테스트이면 "src>test>java>패키지명" 에서는 JUnit 단위테스트를 수행할 수 있는데 수행이 안됨. 이유는 getRepeatAlarmTime 메소드에는 안드로이드의 종속성을 갖는 Log.d가 포함되어 있었음.
해당 Log 부분을 지우느까 단위테스트가 진행됨.
단순 기능 테스트라면 다음과 같이 단위테스트 수행.

'android' 카테고리의 다른 글
[android] Proguard 해제하는 방법 (0) | 2020.03.10 |
---|---|
[안드로이드 ] KeyguardManager 에 대해서.... (0) | 2020.02.12 |
[android] MediaPlayer 상태 천이도 - SKTAcademy (0) | 2020.01.22 |
[android] listview 에서 listview item 클릭이 안될 경우 (0) | 2020.01.22 |
[android]Error inflating class : YouTubePlayerView 에러 발생 해결방법 (0) | 2020.01.14 |