https://dagger.dev/hilt/instrumentation-testing


6.3 Testing – Instrumentation Testing

테스트 Application 설정하기

Hilt의 테스트 API는 특정 테스트 환경에 무관하게 설계되었다. 그러나 테스트에서 Application 클래스를 설정하기 위한 방법은 Robolectric 또는 안드로이드 Instrumentation 테스트를 사용 중인지 여부에 따라 다르다.

안드로이드 Instrumentation 테스트에서 AndroidJUnitRunner를 확장하는 사용자화 테스트 러너(runner)를 사용하여 Application이 설정될 수 있다. 러너를 사용하는 Application을 설정하기 위해서 newApplication 메서드를 재정의 하고 Application 클래스 이름을 넘기면 된다. Hilt 테스트에서는 Application은 반드시 HiltTestApplication 또는 사용자화 테스트 Application 중 하나가 되어야 한다.

package my.pkg

class MyTestRunner extends AndroidJUnitRunner {
  override fun newApplication(
      cl: ClassLoader,
      appName: String,
      context: Context) : Application {
    return super.newApplication(
        cl, HiltTestApplication::class.java.getName(), context)
  }
}

추가적으로 주어진 Gradle 모듈에 대한 testInstrumentationRunner는 반드시 build.gradle 파일에서 설정되어야 한다.

android {
    defaultConfig {
        testInstrumentationRunner "my.pkg.MyTestRunner"
    }
}
카테고리: Dagger2

0개의 댓글

답글 남기기

Avatar placeholder

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.