Как проверить модули Koin при использовании параметров впрыска? - PullRequest
0 голосов
/ 09 мая 2019

Я хотел бы проверить свою конфигурацию, используя метод checkModules(), предоставленный koin-test, как объяснено здесь .

Однако я использую параметры впрыска , и мой тест завершается неудачей с исключением:

org.koin.core.error.NoParameterFoundException: Can't get parameter value #0 from org.koin.core.parameter.DefinitionParameters@3804648a

Вот простой тест для демонстрации проблемы:

import org.junit.Test
import org.koin.dsl.koinApplication
import org.koin.dsl.module
import org.koin.test.KoinTest
import org.koin.test.check.checkModules

class TestCase : KoinTest {
    @Test
    fun checkModules() {
        koinApplication {
            modules(
                module { factory { (msg: String) -> Message(msg) } }
            )
        }.checkModules()
    }

    data class Message(val message: String)
}

Есть ли способ заставить эту работу? Как я могу предоставить отсутствующий параметр?

1 Ответ

1 голос
/ 30 мая 2019

Вам нужно передать этот параметр в ваш тест, например:

class TestCase : KoinTest {
    @Test
    fun checkModules() {
        koinApplication {
            modules(module { factory { (msg: String) -> Message(msg) } })
        }.checkModules {
            create<Message> { parametersOf("testMessage") }
        }
    }


    data class Message(val message: String)
}

Пример из репозитория Koin: CheckModulesTest.kt # L156

Моя проблема с тем же вопросом: Проблема

...