1

我想使用这里解释的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)
}

有没有办法使这项工作?我怎样才能提供缺少的参数?

4

1 回答 1

6

您需要将此参数传递给您的测试,如下所示:

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

我对同样问题的问题:问题

于 2019-05-30T05:40:55.417 回答