В настоящее время я пишу тесты на Cypress для приложения, написанного на реаги и использующего redux и redux-saga. В одном из моих тестов я пытаюсь заглушить запрос и вернуть ответ, который код ожидает в виде «строкового» массива с помощью JSON, чтобы его можно было проанализировать позже.
Я пытался указать ответ в команде cy.route (), используя JSON.stringify ([требуемый ответ)), но это не работает, ответ продолжает анализироваться Cypress или каким-либо другим промежуточным программным обеспечением до перехода к сага.
Я также пытался перехватить ответ в параметре onResponse, но мне кажется, что он выполняется после доставки ответа (не уверен в этом, сделал только несколько расплывчатых тестов)
// This is how my cy.route() config looks like
cy.route({
method: 'POST',
url: 'someUrl',
response: JSON.stringify([myResponse]),
});
А в моей саге:
// I call the url via axios and immediately after I try to parse it
try {
const parsed = JSON.parse(response.data);
} catch (err) {
const parsed = [];
}
Я ожидаю, что мой ответ в саге будет что-то вроде: "[myResponse]", но вместо этого я получил необработанный массив