Sinon Stub不适用于摩卡

时间:2015-10-08 13:07:54

标签: unit-testing mocha sinon stub

我正在尝试使用sinon存根来模拟一个函数,但它没有按预期工作,有人可以解释如何修复它

在其中一个文件customFunc.js中,我有像

这样的函数
function test() {
  return 'working good';
}
exports.test = test;

function testFunction(data, callback) {
  var sample = test();
  if(sample === 'test') {
    return callback(null, sample);
  }
  else {
    return callback(null, 'not working');
  }
}
exports.testFunction = testFunction;

我正在尝试使用mocha测试testFunction,我尝试使用sinon来测试函数这样

it('testing sinon', function(done) {
  var stub = sinon.stub(customFunc,'test').returns('working');

  customFunc.testFunction('test', function(err, decodedPayload) {
    decodedPayload.should.equal('working');
    done();
  });
});

sinon是否有效我应该随时工作'作为输出,但它没有发生,请让我知道如何模拟test()函数。

1 个答案:

答案 0 :(得分:1)

你的sinon存根看起来没问题,但你在测试中期待的是不正确的。如果'测试'功能返回'工作' (因为存根),然后会发生以下情况:

  var sample = test(); // sample = 'working'
  if(sample === 'test') { // will evaluate false
    return callback(null, sample);
  }
  else {
    return callback(null, 'not working'); // will return 'not working'
  }

所以很自然这会评估错误。

decodedPayload.should.equal('working');