【发布时间】:2019-02-18 06:57:03
【问题描述】:
我想要一种模拟网络请求并能够检查/验证模拟 API 接收到的内容的方法。大多数模拟框架只允许您验证响应。
【问题讨论】:
标签: node.js unit-testing mocking
我想要一种模拟网络请求并能够检查/验证模拟 API 接收到的内容的方法。大多数模拟框架只允许您验证响应。
【问题讨论】:
标签: node.js unit-testing mocking
我认为sinon && sinon.spy() 正是您在使用stubbed 函数执行此API 调用或模拟(使用nock 库)API 调用本身之后所需要的。
调用被监视的函数后,您可以使用spy.calledWith(arg1, arg2, ...); 检查调用该函数时使用了哪些参数。你还有其他有用的工具,比如它被调用了多少次,或者什么时候等等......
【讨论】:
sinon和moxios(因为我使用的是axios)。
您可以使用 nock 来模拟 API,它的工作原理是这样的。
const expect = require('chai').expect;
const nock = require('nock');
describe('Get User tests', () => {
beforeEach(() => {
nock('https://api.github.com')
.get('/users/octocat')
.reply(200, response);
});
it('Get a user by username', () => {
});
});
这里是更多详细信息的链接https://scotch.io/tutorials/nodejs-tests-mocking-http-requests#toc-testing-the-right-way
【讨论】:
chai 测试框架。我希望解决方案与框架无关。