Внедрите OkHttp с помощью dagger2 в класс AndroidTest для повторной регистрации OkHttp3IdlingResource.

У меня есть приложение, созданное с помощью Retorift2 + Dagger2. Я начал писать тесты пользовательского интерфейса Android, используя Espresso. Чтобы дождаться сетевых вызовов, мне нужно зарегистрировать IdlingResource. Я добавил зависимость к OkHttp3IdlingResource.

Мне нужно внедрить OkHttp в мой тестовый класс, но поскольку AppComponent не находится в том же исходном каталоге, поэтому я не могу просто добавить

void inject(RegistrationLoginUiTest activity);

К моему компоненту.

Как я могу получить OkHttp из графа зависимостей в свой тестовый класс?

Единственный способ создать TestAppComponent и поменять его местами с AppComponent?


person Vadims Savjolovs    schedule 26.08.2016    source источник
comment
добавить в файл build.gradle зависимости: androidTestCompile 'javax.inject:javax.inject:1'   -  person piotrek1543    schedule 26.08.2016
comment
затем используйте свои provide... методы. Сразу после inject поставил вот так OkHtttp ok = ....inject(RegistrationLoginUiTest activity).provideOkHttpCLient().   -  person piotrek1543    schedule 26.08.2016


Ответы (1)


Я разобрался, что в любом случае, если я хочу внедрить тестовый класс, я должен создать TestAppComponent, где я должен добавить строку:

void inject(RegistrationLoginUiTest activity);

А затем поменяйте TestAppComponent на AppComponent.

person Vadims Savjolovs    schedule 29.08.2016