如何使用 Sinon 的 stub() 方法

发布于 2022-09-15 11:38:42 字数 1227 浏览 190 评论 0

stub() 方法,可以换一个功能对于一个假版本的功能预先确定的行为。 这有助于检测边界情况下,像会发生什么,当一个 HTTP 请求将失败。

sinon.stub() 替代品的真实的功能和返回一桩对象,你可以配置使用的方法一样 callsFake()
Stubs 也有一个 callCount 告诉你多少次被调用了多少次,例如以下代码,axios.get() 对于一个函数,总回报 { status: 200 } 并声称, axios.get() 被称为一次。

const axios = require('axios');
const sinon = require('sinon');
const assert = require('assert');

const stub = sinon.stub(axios, 'get').callsFake(() => Promise.resolve({ status: 200 }));
// Calls the fake `axios.get()`
const test = await axios.get('https://httpbin.org/get');

assert.deepEqual(test, { status:200 }); // passes
assert.strictEqual(stub.callCount, 1); // passes

使用 getCall()

Stubs 也有一个 getCall() 功能返回的数据在一个特定功能的调用。
例如 stub.getCall(0) 返回的一个目包含数据的第一时间短,包括 argumentsreturnValue:

const call = stub.getCall(0);

call.args; // ['https://httpbin.org/get']
call.returnValue; // Promise { { status: 200 } }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

谜兔

暂无简介

文章
评论
27 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文