我正在尝试使用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()函数。
答案 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');