You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MockK编写Kotlin测试时,导入io.mockk.every需哪些依赖?

关于MockK依赖与io.mockk.every等导入的说明

嘿,咱们一步步理清楚你的问题:

1. 核心API的依赖覆盖

你当前引入的mockk核心依赖(io.mockk:mockk:1.7.15)已经完全覆盖了你用到的这些基础API:

  • io.mockk.every:定义Mock行为的核心函数
  • io.mockk.any:匹配任意参数的常用匹配器
  • io.mockk.Runs:用于无返回值函数的Mock场景
  • io.mockk.impl.annotations.MockK:标记Mock对象的注解

所以这些API的导入需求,现有核心依赖已经能满足。

2. JUnit 5扩展的依赖补充

不过你代码里用到了MockKExtension(io.mockk.junit5.MockKExtension),在MockK 1.7.x版本中,这个JUnit 5的扩展是独立模块,并没有包含在核心mockk依赖里。因此你需要额外添加对应的扩展依赖才能正常使用这个注解。

补充后的Gradle依赖配置

testCompile group: 'io.mockk', name: 'mockk', version: '1.7.15'
testCompile group: 'io.mockk', name: 'mockk-junit5', version: '1.7.15'

如果是Kotlin DSL写法:

testImplementation("io.mockk:mockk:1.7.15")
testImplementation("io.mockk:mockk-junit5:1.7.15")

3. 额外注意事项

  • 确保你的项目已经引入JUnit 5的基础依赖(比如org.junit.jupiter:junit-jupiter-api和org.junit.jupiter:junit-jupiter-engine),否则@ExtendWith和@TestInstance这些JUnit 5注解也会报错。
  • 如果你后续升级MockK到1.8.0及以上版本,mockk-junit5模块已经被合并到核心mockk依赖中,那时就不需要单独添加扩展依赖了。

总结:你当前的核心依赖能满足every等API的导入,但需要补充mockk-junit5依赖来支持JUnit 5的MockK扩展功能。

内容的提问来源于stack exchange,提问作者Jason Harris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:28:16