摩卡的Sinon Stub不起作用

时间:2017-05-28 00:48:13

标签: javascript mocha sinon sinon-chai

我正在努力解决一个非常微不足道的问题。我能够在所有依赖包中存根函数并且它工作得很好但是当我尝试存根我自己的函数时,我似乎无法使它工作。请参阅以下简单示例:

test.js

  var myFunctions = require('../index')
  var testStub = sinon.stub(myFunctions, 'testFunction')
  testStub.returns('Function Stubbed Response')

  ....

  myFunctions.testFunction()  // is original response

index.js

  exports.testFunction = () => {
    return 'Original Function Response'
  }

1 个答案:

答案 0 :(得分:1)

我认为你的做法是正确的。

例如,我已按以下方式完成,

  

index.js

exports.testFunction = () => {
  return 'Original Function Response'
}
  

index.test.js

const sinon = require('sinon');
const chai = require('chai');
const should = chai.should();
const  myFunctions = require('./index');

describe('myFunction', function () {
  it('should stub', () => {
    sinon.stub(myFunctions, 'testFunction').returns('hello');
    let res = myFunctions.testFunction();
    myFunctions.testFunction.callCount.should.eql(1);
    res.should.eql('hello');
    myFunctions.testFunction.restore();
    res = myFunctions.testFunction();
    res.should.eql('Original Function Response');
  });
});
  

结果

  myFunction
    ✓ should stub


  1 passing (12ms)