2015-10-08 100 views
0

工作,我想使用興農存根嘲笑的功能,但它不是按預期工作,可有人解釋如何解決它興農存根不摩卡

在文件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; 

,我試圖用摩卡測試testFunction功能,我試圖用這樣的

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

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

興農是興農工作我應該總是讓「工作」存根測試功能但它沒有發生,請讓我知道如何模擬test()函數。

回答

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'); 
+0

感謝您的回覆,對我而言存根無效。如果你認爲代碼不正確,你可以告訴錯誤在哪裏。如果sinon不工作,我們可以使用任何其他模塊 – UserJ

+0

@UserJ我認爲你沒有看到KJ3試圖向你展示什麼:你正在創建一個存根,返回「工作」,但將該值與'test'比較如果聲明。你或者應該改變你的存根來返回'test'而不是'working',或者你應該改變你在if中做的檢查。 –