【发布时间】:2017-09-05 18:34:11
【问题描述】:
我有一个异步函数,我想监控它是否被调用以及参数是什么。该函数接受两个参数发出网络请求并返回基于两个参数的响应,例如,假设它是一个附加 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 承诺。
【问题讨论】:
标签: javascript testing mocking sinon stub