我有一个异步函数我想监视它是否被调用以及参数是什么。该函数接受两个参数发出网络请求并返回基于这两个参数的响应,例如假设它是一个附加API。您传递1
和1
并获取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
承诺。
答案 0 :(得分:0)
const spy = sinon.spy(mockAdd);
let result = someFunctionThatUses(mockAdd);
assert(spy.calledOnce);