gpt4 book ai didi

android - Kotlin 单元测试未找到模块依赖接口(interface)

转载 作者:行者123 更新时间:2023-11-30 00:20:35 27 4
gpt4 key购买 nike

我有一个 app 模块和一个 domain 模块。在我的 domain 模块中,我有一个名为 Repository 的接口(interface)。在我的 app 模块中,我使用 dagger 将一个实现注入(inject)到我的类中,这工作正常。

然后当我使用 kotlin 单元测试对其进行测试时,在运行时我得到一个 NoClassDefFoundError

我也曾尝试将 domain 模块包含在我的 app 模块依赖项中,就像这样,但这也没有用:

testImplementation project(':domain')

这是我当前的测试依赖项以及我如何包含该模块

implementation project(':domain')
testImplementation 'junit:junit:4.12'
testImplementation 'com.nhaarman:mockito-kotlin:1.5.0'

在我的单元测试中,我像这样使用它,这可能是问题所在:

@Mock lateinit var mockRepo : Repository

最佳答案

感谢 @Mark Keen,我找到了 reported bug在 Jetbrains 网站上。

其中包含来自名为 @Calin 的用户的解决方案。将以下内容添加到项目的 build.gradle 文件并触发 gradle sync 就可以了。

subprojects { subProject ->
afterEvaluate {
if (subProject.plugins.hasPlugin("kotlin") && subProject.plugins.hasPlugin("java-library")) {
subProject.kotlin.copyClassesToJavaOutput = true
subProject.jar.duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
}
}

关于android - Kotlin 单元测试未找到模块依赖接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46381379/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com