woong's

Android Junit Test Jacoco Tool 사용하기 본문

Develop/Android

Android Junit Test Jacoco Tool 사용하기

dlsdnd345 2016. 3. 11. 17:53
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Android Junit Test Jacoco Tool 사용하기


안녕하세요. 제가 찾던 기능을 찾게되어서 포스트를 쓰고 있습니다.

서버할 당시 jacoco를 플러그인을 통해서 코드 라인의 색깔을 통해서 커버가 되었는지

확인 할수 있어 커버가 되지 않은 코드를 커버 할수 있었습니다. 하지만 안드로이드에서 찾아보니

jacoco 파일로 나타나는것이 있었는데 이것은 번거로움이 있어 안하게 되었습니다. 마침 제가

찾던 기능을 찾아서 정리해 보려 합니다.



사전 준비 작업



안드로이드 프로젝트를 보면 

androidTest

main

test


폴더가있습니다. 저희가 코드를 작성해야 할 폴더는 test 입니다.



test 폴더를 열어보면 패키지가 폴더화 되어 있는것을 볼수 있습니다.

이부분을 변경해서 패키지 형태로 바꾸어 주어야 합니다.



Build Variants 를 선택하고 Test Artifact 를 Android Instrumentation Tests 로 선택되어있습니다.

이부분을 Unit Test로 변경 합니다. 변경하면 test 폴더를 확인해보면 패키지형태로 변경 됩니다.




테스트 코드 작성


이제 준비가 되어서 테스트할 코드와 테스트 코드를 작성해야 합니다.


1
2
3
4
5
6
7
8
9
10
11
public class Calculator {
 
 
    public int sum(int a , int b){
        return a + b;
    }
 
    public int divide(int a , int b){
        return a / b;
    }
}
cs


간단하게 테스트할 코드를 작성 했습니다.

테스트코드는 sum 함수만 테스트 해보겠습니다. divide 함수는 일부러

테스트 하지 않아 어떻게 나타나는지 보여드리겠습니다.


이제 테스트 코드를 작성합니다.

테스트 코드를 작성하기 위해서 테스트 클래스를 생성해야 합니다.




위와 같이 테스트할 클래스를 선택후 노란색 전구를 누르면 테스트 클래스를 만들수 있습니다.




입맞에 따라 설정 후에 OK 를 선택 하면 test 패키지에 클래스가 생성된 것을 볼수있습니다.



이제 테스트 코드를 작성 합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
public class CalculatorTest {
 
 
    @Test
    public void testSum(){
 
        Calculator calculator = new Calculator();
        int result = calculator.sum(5,6);
        assertThat(result, is(11));
    }
 
}
 
cs


아래와 같이 테스트 클래스를 선택 < 오른쪽 마우스 클릭 < Run with Coverage 를 선택

하면 오른쪽 창에 결과가 나타 납니다.





Calculator 코드를 테스트 했습니다. 메서드 50% 라인 66% 커버가 되었습니다.



왼쪽을 보면 커버가 된 코드는 초록색 입니다.

커버가 되지 않은 코드는 빨간색으로 나타 납니다.

이렇게 눈으로 커버가 되지 않은 코드를 확인 함으로써 검토를 통해 좀더

완벽하게 코드를 테스트 해볼수 있습니다.





jacoco plugin 덕분에  Calculator 100%  클래스가 모두 초록색인 것을 확인 할수 있습니다.

이제 테스트 코드 작성을 통해서 좀더 퀄리티 있는 코드를 짜보도록 노력해야 겠습니다.




'Develop > Android' 카테고리의 다른 글

Android BottomSheetsBehavior 사용하기  (0) 2016.03.15
Android DB Realm 사용하기  (2) 2016.03.14
Android Kotlin 사용하기  (0) 2016.03.10
Android Marshmallow 6.0 권한 사용하기  (2) 2016.02.24
Android Touch Intercept 사용하기  (3) 2016.02.14
Comments