如何基于函数参数让Sinon Fake返回对应值?
使用Sinon Fake实现基于参数的返回值模拟
要替代旧版Sinon Stub的withArgs().returns()逻辑,你可以直接在Sinon Fake的自定义函数体内通过参数判断返回对应值,这是Fake的原生用法,更灵活且符合新版API的设计思路。
基础示例(匹配单个参数)
// 等效于 sinon.stub().withArgs("arg1").returns("val1") const myFake = sinon.fake((arg) => { if (arg === "arg1") { return "val1"; } // 可根据需求添加默认返回值,比如undefined });
多参数匹配示例
如果需要匹配多个参数组合,直接扩展条件判断即可:
const myFake = sinon.fake((firstArg, secondArg) => { if (firstArg === "arg1" && secondArg === "arg2") { return "combinedVal"; } else if (firstArg === "arg1") { return "val1"; } // 默认返回逻辑 return null; });
说明
Sinon Fake本质是一个可自定义逻辑的函数,你可以在函数体内编写任意参数校验和返回逻辑,完全覆盖旧版Stub链式API的参数匹配场景,同时还能实现更复杂的自定义行为。
内容的提问来源于stack exchange,提问作者Nightwolf
相关产品推荐
相关产品推荐

