首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过将函数替换为虚拟替代来模拟函数

通过将函数替换为虚拟替代来模拟函数
EN

Stack Overflow用户
提问于 2017-09-06 02:34:11
回答 1查看 27关注 0票数 0

我有一个异步函数,我想要监视它是否被调用,以及参数是什么。该函数接受两个参数,发出网络请求,并根据这两个参数返回响应,例如,假设它是一个附加api。传入11并获取2。与其发出这个请求,我想为它创建一个mock,在这里我用它的同步副本替换这个方法。例如。

下面是原始的add函数:

代码语言:javascript
复制
const async realAdd = (a, b) => {
    return makeRequest(`http://my-service.com/add?a=${a}&b=${b}`)
}

这是我想用来模拟的一个:

代码语言:javascript
复制
const async dummyAdd = (a, b) => {
    return Promise.resolve(a + b)
}

假设有一个函数接受add并使用它。在这种情况下,这是我想要使用的函数,并且我想用以前的版本模拟add

代码语言:javascript
复制
const mockAdd = sinon.something(dummyAdd)
let result = someFunctionThatUses(mockAdd)
assert.equal(mockAdd.called, 1)

我想要的只是一种传入伪add方法并检查它是否被调用的方法,但我仍然希望add函数能够return the promise。

EN

回答 1

Stack Overflow用户

发布于 2017-11-07 21:28:29

代码语言:javascript
复制
const spy = sinon.spy(mockAdd);
let result = someFunctionThatUses(mockAdd);
assert(spy.calledOnce);

文档参考:http://sinonjs.org/releases/v4.1.1/spies/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46061315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档