Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用sinon如何避免测试嵌套函数?_Javascript_Mocha.js_Sinon_Sinon Chai - Fatal编程技术网

Javascript 使用sinon如何避免测试嵌套函数?

Javascript 使用sinon如何避免测试嵌套函数?,javascript,mocha.js,sinon,sinon-chai,Javascript,Mocha.js,Sinon,Sinon Chai,我用的是摩卡咖啡/柴酒/西诺咖啡,这三种咖啡我都是新手 const a = () => { b(); } const b = () => { console.log('here'); } 在本例中,我只想测试在调用a而不执行b时是否调用了b 比如: it('test', () => { const spy = sinon.spy(b); a(); chai.expect(spy.calledOnce).to.be.true; }) Sinon的存根正是

我用的是摩卡咖啡/柴酒/西诺咖啡,这三种咖啡我都是新手

const a = () => {
  b();
}

const b = () => {
  console.log('here');
}
在本例中,我只想测试在调用
a
而不执行
b
时是否调用了
b

比如:

it('test', () => {
  const spy = sinon.spy(b);
  a();
  chai.expect(spy.calledOnce).to.be.true;
})

Sinon的
存根
正是您需要的

何时使用存根? 如果要执行以下操作,请使用存根:

  • 通过测试控制方法的行为,以强制代码沿着特定路径运行。示例>包括强制方法抛出错误以测试错误处理

  • 当您希望阻止直接调用特定方法时(可能是因为它触发了不希望的行为,例如XMLHttpRequest或类似行为)

  • it('test', () => {
      const stub = sinon.stub(b);
      a();
      chai.expect(stub.calledOnce).to.be.true;
    })