2017-09-05 114 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的承诺。

回答