[Android] unit test에서 android Util 사용하기

[Android] unit test에서 android Util 사용하기

Unit test에서 android Utils를 사용한 코드를 호출하는 경우, 아래와 같은 에러가 발생한다.

예를 들어, TextUtils.isEmtpy()를 사용한 코드를 테스트하는 경우

java.lang.RuntimeException: Method isEmpty in android.text.TextUtils not mocked

방법1) app의 build.gralde에 옵션 추가

android {
  // ...
  testOptions {
    unitTests.returnDefaultValues = true
  }
}

-> 주의 : Default값이 반환되기 때문에, 예상한 동작과 다를 수 있다.

방법2) src/test/java > android. 패키지에 동일한 Utils 클래스 추가 

예시) TextUtils를 사용하는 경우

프로젝트의 src/test/java/android/text 경로에 TextUtils 클래스 생성 및 사용한 메서드를 복사&붙여넣기

package android.text;

public class TextUtils {
	/**
     * Returns true if the string is null or 0-length.
     * @param str the string to be examined
     * @return true if str is null or zero length
     */
    public static boolean isEmpty(@Nullable CharSequence str) {
        return str == null || str.length() == 0;
    }
}

Comments