UI-тесты с Hilt ходят в боевой API, потому что модуль сети не подменён
@Module
@InstallIn(SingletonComponent::class)
object NetworkModule {
@Provides @Singleton
fun api(): ShopApi = Retrofit.Builder().baseUrl(BuildConfig.API_URL) /* ... */
}
Инструментальные тесты отмечены @HiltAndroidTest и используют HiltAndroidRule. Нужно, чтобы во всех тестах вместо ShopApi подставлялся фейк, а в приложении ничего не менялось. Как это сделать средствами Hilt?
- Тестовый модуль с @TestInstallIn(replaces = ...)
- Проверять в NetworkModule, запущен ли тест
- Переопределить BuildConfig.API_URL в тесте
- Создавать ShopApi в тесте через конструктор
