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

如何将MockKExtension.CheckUnnecessaryStub设为所有测试的默认行为?

全局设置MockKExtension.CheckUnnecessaryStub默认行为的方法

完全可以全局配置这个属性,不用在每个测试类上重复添加注解,有两种常用实现方式:

1. 通过JVM参数全局开启

直接给测试任务添加JVM启动参数,让所有MockK测试默认启用不必要Stub检查:

  • 本地IDE运行测试时,在测试配置里添加参数:-Dmockk.checkUnnecessaryStubs=true
  • Gradle项目可在构建脚本中统一配置:
    Groovy版本(build.gradle):
    test {
        jvmArgs '-Dmockk.checkUnnecessaryStubs=true'
    }
    
    Kotlin DSL版本(build.gradle.kts):
    tasks.test {
        jvmArgs("-Dmockk.checkUnnecessaryStubs=true")
    }
    

2. 自定义全局MockK配置类

通过实现MockK的扩展接口定义全局默认配置:

  1. 编写配置类,指定默认检查行为:
import io.mockk.MockKConfigurationExtension
import io.mockk.MockKSettings

class GlobalMockKConfig : MockKConfigurationExtension {
    override fun getConfiguration(): MockKSettings {
        return MockKSettings().copy(
            checkUnnecessaryStubs = true
        )
    }
}
  1. 创建配置文件让MockK识别全局配置:
    在src/test/resources/META-INF/services/目录下新建文件io.mockk.MockKConfigurationExtension,内容为你的配置类全限定名,示例:
com.yourproject.test.GlobalMockKConfig

如果个别测试需要临时关闭该检查,直接在对应测试类上添加@MockKExtension.CheckUnnecessaryStub(false)注解即可,会覆盖全局配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 10:04:53