使用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
相关产品推荐
相关产品推荐

