我有一个异步函数,我想要监视它是否被调用,以及参数是什么。该函数接受两个参数,发出网络请求,并根据这两个参数返回响应,例如,假设它是一个附加api。传入1和1并获取2。与其发出这个请求,我想为它创建一个mock,在这里我用它的同步副本替换这个方法。例如。
下面是原始的add函数:
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 the promise。
发布于 2017-11-07 21:28:29
const spy = sinon.spy(mockAdd);
let result = someFunctionThatUses(mockAdd);
assert(spy.calledOnce);文档参考:http://sinonjs.org/releases/v4.1.1/spies/
https://stackoverflow.com/questions/46061315
复制相似问题