未解决的引用:KoinTest中的test

7

我正在尝试使用 Koin 进行一些测试,但是我遇到了 "Unresolved reference:KoinTest" 的问题。不过,似乎我的代码导入是正确的,因为我没有看到任何错误。只有在我尝试运行测试时才会出现这个问题。

我已经尝试清理和重建项目,并重新启动了 Android Studio,但仍然存在问题。

测试类:

 import org.junit.After
    import org.junit.Before
    import org.junit.Test
    import org.koin.core.context.startKoin
    import org.koin.core.context.stopKoin
    import org.koin.test.KoinTest
    import salva.perez.cabify.di.applicationModule
    import org.koin.test.inject
    class VoucherPresenterTest : KoinTest {

        private val presenter: VoucherContract.Presenter by inject()


        @Before
        fun before() {
            startKoin {
                modules(applicationModule)
            }
        }

        @After
        fun after() {
            stopKoin()
        }

        @Test
        fun testInitViewCorrectly() {
            ...
        }
    }

GRADLE

    implementation 'org.koin:koin-android:2.0.1'
    testImplementation 'org.koin:koin-test:2.0.1'

添加了 repositories { jcenter() } - IntelliJ Amiya
1
你是指项目中的 build.gradle 文件吗?我有以下代码:buildscript { ext.kotlin_version = '1.3.31' repositories { google() jcenter()} dependencies { classpath 'com.android.tools.build:gradle:3.3.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" }}allprojects { repositories { google() jcenter()}} - S.P.
添加 'org.koin:koin-core:2.0.1' - IntelliJ Amiya
我进行了清理和重建,但仍然出现了相同的错误:未解决的引用:test 和 未解决的引用:KointTest。 - S.P.
3
我找到了问题所在。这是因为在错误的测试文件夹中运行了代码。 - S.P.
2个回答

9

如果您要在androidTest中使用它,请考虑使用androidTestImplementation,而如果您还想在unitTest中使用它,则使用debugImplementation


1

非常抱歉迟到了(整整晚了两年),但如果仍有人在寻找此解决方案... 您需要手动添加导入 -> import org.koin.test.inject,以便Android识别KoinTest接口。


1
这个回答方向正确,但并不完全准确。在我的情况下,我必须使用import org.koin.test.* 才能停止显示错误。如果有人知道正确的包名,他们可以编辑上面的答案。 - Kenneth Murerwa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接