2017-05-26 43 views
0

我試圖單元測試:貓鼬模型鏈單元測試(定期回調)

myModel.find({"id": someId}, callback) 
    .sort({timestamp: -1}) 
    .limit(100) 

我用興農,貓鼬,並具有以下

myModel 
    .expects('find').withArgs({"id": 'def'}) 
    .chain('exec') 
    .yields(null, 'abc') 
    .chain('sort').withArgs({timestamp: -1}) 
    .chain('limit').withArgs(100); 

不過來了,我碰上問題:done函數沒有被調用,並且測試超時。任何人都有使用sinon-mongoose對exec回調進行常規回調的經驗。

如果我改變我的模型代碼:

myModel.find({"id": someId} 
    .exec(callback) 
    .sort({timestamp: -1}) 
    .limit(100) 

單元測試工作。因此,我認爲這是一個問題,在存根執行回調與常規回調。

回答

0

通過編寫以下內容解決了該問題,而不用擔心貓鼬查詢測試中的回調。

myModel 
    .expects('find').withArgs({"id": 'def'}) 
    .yields(null, 'abc') 
    .chain('sort').withArgs({timestamp: -1}) 
    .chain('limit').withArgs(100);