원래는 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("디버깅", "잘 되냐"); } }