JSON.stringify в опции ответа cy.route не работает - PullRequest
0 голосов
/ 03 мая 2019

В настоящее время я пишу тесты на 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]", но вместо этого я получил необработанный массив

1 Ответ

0 голосов
/ 07 мая 2019

Из любопытства: пытались ли вы избежать [myResponse] в JSON.stringify()?

Что-то вроде

cy.route({
  method: 'POST',
  url: 'someUrl',
  response: [myResponse],
});

В любом случае: в моем приложении, с вашей точной ситуацией, мое единственное отличие с вашим кодом состоит в том, что я использую Cypress приборы .

Не могли бы вы поделиться простым репозиторием GitHub со своим упрощенным кодом?

...