2017-09-05 45 views
0

我有一個異步函數,我想監視它是否被調用以及參數是什麼。這個函數需要兩個參數來產生一個網絡請求,然後返回一個基於這兩個參數的響應,比如我們假設它是一個附加api。您通過11並獲得2。而不是提出這個請求,我想爲它創建一個模擬,我將它替換爲同步的方法。例如。通過替換爲虛擬替代來模擬函數

這裏的原始添加功能:

const async realAdd = (a, b) => { 
    return makeRequest(`http://my-service.com/add?a=${a}&b=${b}`) 
} 

這裏有一個我想使用的嘲諷:

const async dummyAdd = (a, b) => { 
    return Promise.resolve(a + b) 
} 

比方說有這需要add和使用它的功能。在這種情況下,這是我想使用的功能,我想用以前的版本來模擬add

const mockAdd = sinon.something(dummyAdd) 
let result = someFunctionThatUses(mockAdd) 
assert.equal(mockAdd.called, 1) 

我要的是在虛擬add方法傳遞和檢查,如果它被稱爲一種方式,但我仍然希望add功能return的承諾。

回答