[Android] Android Studio에서 JUnit 테스트를 할 때 Logcat을 사용할 수 있도록 하는 설정 (powermock 설정 관련)

By | 1월 18, 2021

원래는 JUnit 같은 거 잘 안쓰는 스타일인데, 하도 Test 클래스의 main() 실행이 안되길래(클래스를 못 찾는다나 어쩐다나) JUnit으로 방향을 돌려 봤다.

그런데 unit test를 하다 보니, Logcat 을 실행하는 부분에서 에러가 발생해서 진행이 되질 않았다. 

구글링을 해 보니 powermock 이란 걸 써야 한다네?

그래서 dependency 들을 찾아서 build path 에 추가해 주는데, 이것도 워낙 라이브러리가 세분화 되어 있어서 뭘 import 해야 할 지도 모르겠는거다.

dependency group 같은 걸로 되어 있으면 편할 것 같은데 그것도 잘 모르겠고.

그래서 삽질을 좀 한 끝에 아래와 같은 설정에서 JUnit 과 더불어 LogCat 이 정상적으로 실행되는 것을 확인하였다.

 

* build.gradle 의 dependencies 부분

testCompile 'junit:junit:4.12'
testCompile 'org.powermock:powermock-module-junit4:1.7.0RC2'
testCompile 'org.powermock:powermock-core:1.7.0RC2'
testCompile 'org.powermock:powermock-api-mockito:1.7.0RC2'
testCompile 'org.powermock:powermock-api-mockito2:1.7.0RC2'
testCompile 'org.powermock:powermock-api-easymock:1.7.0RC2'

 

* JavaTest.java

package com.itpsolver;
import android.util.Log;
import com.kftc.bfop.useorgsampleapp.util.StringUtil;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
@PrepareForTest( { Log.class }) // LogCat을 위한 설정
public class JavaTest {
    @Test
    public void test01() {
        PowerMockito.mockStatic(Log.class); // LogCat을 위한 설정
        Log.d("디버깅", "잘 되냐");
    }
}

 

 

 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments