Я делаю запрос с библиотекой 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. Возможно, этот процесс тестирования может понадобиться, но это другой вопрос.