如何在进行真正的HTTP调用的Node.js中对请求主体axios.js进行断言?

zmi*_*mii 5 javascript node.js jestjs nock axios

我正在与要求axios.js我的集成测试套件的图书馆和部分是对数据的预期中发送bodyPOST请求,通过做axios,看看它的确定。在开发过程中,我使用了nock方法nock.js并将期望值放入.postnock方法中,如下所示:

it('test signature should be present' , done => {
  ...
  nock...
    .post('', body => {
      const requestBody = JSON.parse(body);
      expect(requestBody.config.signature).toEqual('TEST SIGNATURE');
      done();
    ...
  })
...
});
Run Code Online (Sandbox Code Playgroud)

但还需要进行不nock与命令一起使用的集成测试

export NOCK_OFF='true' && jest
Run Code Online (Sandbox Code Playgroud)

因此需要一种方法来获取请求数据并为其编写期望。

如何做到这一点?

PS我可以想象axios在进行HTTP调用之前在每个测试用例中添加一些自定义拦截器,并在测试断言之后将其删除,但是似乎有很多代码可用于此类操作。或者有一些测试助手将状态数据存储在响应中并声明一些对它的反对。

PPS可能的变体是产生一些HTTP代理,并以某种方式捕获请求并对它们进行断言。但这是工程上的过分杀伤力。

PPS虽然可能需要此测试流程,但这是另一个问题。