模拟网络请求并验证发送的请求

时间:2019-02-18 06:57:04

标签: node.js unit-testing mocking

我想要一种模拟网络请求并能够检查/验证模拟API接收到的内容的方法。大多数模拟框架仅允许您验证响应。

2 个答案:

答案 0 :(得分:0)

您可以使用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

答案 1 :(得分:0)

我认为sinon和&sinon.spy()正是您需要stubbed函数进行此API调用或模拟了API(使用nock库之后)所需要的自称。

调用了被监视的函数后,可以使用spy.calledWith(arg1, arg2, ...);来检查调用该函数的参数。您还拥有其他有用的工具,例如调用了多少次或何时调用……