[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