티스토리 뷰

반응형

안드로이드에 대한 단위테스트는 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 부분을 지우느까 단위테스트가 진행됨.

단순 기능 테스트라면 다음과 같이 단위테스트 수행.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함