javascript - 使用 sinon 如何避免测试嵌套函数?
问题描述
我正在使用 mocha/chai/sino 并且我是他们三个的新手。
const a = () => {
b();
}
const b = () => {
console.log('here');
}
在此示例中,我只想测试b
调用时调用a
而不执行b
。
就像是:
it('test', () => {
const spy = sinon.spy(b);
a();
chai.expect(spy.calledOnce).to.be.true;
})
解决方案
诗乃的stub
就是你要找的。
何时使用存根?当您想要时使用存根:
从测试中控制方法的行为以强制代码沿特定路径运行。示例 > 包括强制方法抛出错误以测试错误处理。
当您想要阻止直接调用特定方法时(可能是因为它触发了不需要的行为,例如 XMLHttpRequest 或类似的)。
it('test', () => {
const stub = sinon.stub(b);
a();
chai.expect(stub.calledOnce).to.be.true;
})
推荐阅读
- python-3.x - 无法安装 Twisted
- android-studio - 找不到与包名称匹配的客户端
- appcelerator - Appcelerator 在运行时更改应用颜色主题
- javascript - Javascript json 对象
- javascript - 在变量中存储不同的 NaN 值
- javascript - 如何务实地从 background.js 打开弹出扩展
- asp.net-identity - 如何将声明从 WS-Federation 回复转移到 Identity
- string - 如何在 WebAssembly 中将字符串写入内存
- python - 组合列 Pandas df
- apache-spark - 如何使用 spark DS 从嵌套的 json 中提取数据?