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

