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

verifyOrder中如何指定某函数被调用的精确次数?

正确声明方式

你给出的示例属于Kotlin生态下的MockK测试框架的调用顺序验证场景,exactly = 10有两种合法的声明写法:

  • 写法1:将exactly作为调用方法的参数传入,直接写在方法名后的括号内,适合单个方法指定调用次数的场景
verifyOrder {
    myMockObject.func1()
    myMockObject.func2(exactly = 10)
    myMockObject.func3()
}
  • 写法2:将需要验证次数的调用放在exactly(N)的Lambda表达式块内,适合批量给多个调用指定相同调用次数的场景
verifyOrder {
    myMockObject.func1()
    exactly(10) { 
        myMockObject.func2()
        // 同次数要求的其他方法可以统一放在当前块内
    }
    myMockObject.func3()
}

两种写法都会在验证func1→func2→func3调用顺序的同时,校验func2在序列中刚好被调用10次,次数不符或者顺序不符合预期都会抛出验证失败异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:36:01