Как исправить Не найдено определения для класса: 'android .content.Context'. Проверьте свои определения! в KoinTest - PullRequest
0 голосов
/ 17 июня 2020

В моем KoinTest extends

@Before
    fun setUp() {
        startKoin { modules(KoinStarter.getModules()) }
    }

@Test
fun `should inject my components`() {
    val settingsStore: SettingsStore = get()
    assertNotNull(settingsStore)
}

Я получаю сообщение об ошибке Для класса не найдено определение: 'android .content.Context'. Проверьте свои определения!

Но мой модуль находится в KoinStarter.getModules ()

val localDataModule = module {
    factory<Resources> { get<Context>().resources }
    single<SettingsStore> { SettingsStore(get<Context>()) }
}

1 Ответ

1 голос
/ 17 июня 2020

Вам необходимо предоставить контекст приложения в методе androidContext().

Поскольку ваш вопрос касается конкретно тестирования, в моем случае мне пришлось передать контекст приложения через ApplicationProvider:

startKoin {
    androidContext(ApplicationProvider.getApplicationContext())
    .....
}

Не забудьте добавить зависимость androidx:

testImplementation 'androidx.test:core:1.0.0'

...