Как сделать утверждения в теле запроса axios.js в Node.js, совершая реальные HTTP-вызовы? - PullRequest
0 голосов
/ 30 октября 2018

Я делаю запрос с библиотекой axios.js, и частью моего набора интеграционных тестов являются ожидания при отправке данных в body из POST запроса, выполненного axios, чтобы проверить, все ли в порядке. Во время разработки я использовал nock.js и поместил ожидания в метод .post nock, например:

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

, но также необходимо иметь интеграционные тесты, которые не используют nock с командой

export NOCK_OFF='true' && jest

, следовательно, нужен метод для получения данных запроса и записи ожиданий для него.

Как этого можно достичь?

P.S. Я могу представить себе добавление некоторого пользовательского перехватчика axios в каждом тестовом случае перед выполнением HTTP-вызова и удаление его после тестовых утверждений, но для такой вещи кажется много кода. Или наличие некоторого помощника по тестированию, который будет хранить в своем состоянии данные из ответа и утверждать некоторые вещи против него.

P.P.S. Возможный вариант - порождать некоторые HTTP-прокси и каким-то образом перехватывать запросы и делать на них утверждения. Но это инженерное излишество.

P.P.S. Возможно, этот процесс тестирования может понадобиться, но это другой вопрос.

...