KMM项目Mockito测试可运行但Android Studio无法解析引用
针对你遇到的「测试代码可正常执行,但Android Studio提示Mockito相关引用无法解析」的问题,可尝试以下解决方案:
检查依赖作用域配置
确保Mockito Kotlin依赖添加在KMM的测试源集下(而非主代码源集)。在项目的build.gradle.kts(或.gradle)文件中,配置示例如下:sourceSets { val commonTest by getting { dependencies { implementation("org.mockito.kotlin:mockito-kotlin:4.1.0") // 替换为你使用的版本 implementation("org.mockito:mockito-core:4.11.0") } } }依赖必须对应到测试源集,主代码源集不需要引入测试类库。
强制刷新Gradle依赖
执行./gradlew clean build --refresh-dependencies命令,强制Gradle重新拉取依赖并同步项目;也可以点击Android Studio右上角的「Sync Project with Gradle Files」按钮手动触发同步。启用Gradle Metadata配置
打开Android Studio的Settings > Languages & Frameworks > Kotlin Multiplatform,勾选Enable Gradle metadata选项——KMM跨平台依赖的正确解析需要该配置支持。清除Android Studio缓存并重启
执行File > Invalidate Caches... > Invalidate and Restart,彻底清除IDE缓存后重启,缓存损坏是导致依赖识别异常的常见原因。验证测试目录结构
确认测试代码放在KMM对应的测试目录下:通用测试代码需放在src/commonTest/kotlin/,Android平台测试放在src/androidTest/kotlin/,目录结构错误会导致IDE无法识别依赖的作用域。
另外,你的测试代码中有重复的import kotlin.test.Test语句,可删除其中一条,避免冗余。
内容的提问来源于stack exchange,提问作者Oskar Persson

