https://dagger.dev/hilt/robolectric-testing
6.2 Testing – Robolectric Testing
테스트 Application 설정하기
Hilt의 테스트 API는 특정 테스트 환경에 무관하게 설계되었다. 그러나 테스트에서 Application 클래스를 설정하기 위한 방법은 Robolectric 또는 안드로이드 Instrumentation 테스트를 사용 중인지 여부에 따라 다르다.
Robolectric 테스트에서는 국소적으로 @Config를 사용하거나 전역적으로 robolectric.properties를 사용하여 Application을 설정할 수 있다. Hilt를 위한 테스트에서 Application은 반드시 HiltTestApplication 또는 사용자화 테스트 Application 중 하나가 되어야 한다.
Note : 이 설정은 Hilt에 특정되지 않는다. Robolectric 공식 문서를 통해 더 많은 정보를 참조하자. |
@Config 사용하기
Hilt용 Application 클래스는 국소적으로 @Config 어노테이션을 사용하여 설정될 수 있다. Application 클래스를 설정하기 위해서는 테스트 (또는 테스트 메서드)에 @Config 어노테이션을 추가하고 어노테이션의 값으로 원하는 Application 클래스를 지정하면 된다.
@HiltAndroidTest
@Config(application = HiltTestApplication::class)
class FooTest {...}
robolectric.properties 사용하기
Hilt 애플리케이션은 robolectric.properties 파일을 사용하여 전역적으로 설정될 수 있다. Application 클래스를 설정하기 위해서는 적정한 reosurce 패키지에 robolectric.properties 파일을 생성하고 Hilt 테스트 Application을 설정하면 된다.
application=dagger.hilt.android.testing.HiltTestApplication
안드로이드 Instrumentation 테스트와 함께 @Config 어노테이션을 사용할 수 없을 때 이러한 접근 방식을 사용하면, 테스트를 Robolectric 그리고 안드로이드 Instrumentation 환경에서 실행할 때 유용하다.
0개의 댓글