wait () не может найти ранее запущенный псевдоним маршрута - PullRequest
0 голосов
/ 06 июля 2018

Используя Cypress js, я создал комплексные тесты для веб-сайта и запустил тесты в powershell. При некоторой нехватке знаний при использовании функции wait() псевдонимные маршруты не такие, как я ожидал.

ядро ​​теста на кипарис:

cy.route("http://localhost:8000/admin/portfolio/putstrategy")
    .as("updatestrategy")

cy.get("button")
    .contains("Upload")
    .click()

cy.wait("@updatestrategy")

журналы:

enter image description here

Я ожидаю, что wait() совпадет с запросом, инициированным нажатием кнопки. То, что я сейчас получаю, - это успешный ответ на запрос, по-видимому, все до того, как тест сможет его догнать.

Из документов:

Each time we use cy.wait() for an alias, Cypress waits for the next nth matching request.

Мое понимание этой цитаты состоит в том, что wait() будет совпадать с запросом, чей номер ордера на выполнение соответствует номеру ордера на выполнение в ожидании относительно того же адреса.

Запросы могут истекать, а ответы могут истекать. В этом случае не найдено ни одного запроса, соответствующего номеру ожидания.

Как я могу использовать Cypress для ожидания запроса, вызванного программным способом?

Ответы [ 2 ]

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

^^ как он сказал, но так как это запрос POST. Это должно выглядеть так

cy.route("POST", "/admin/portfolio/putstrategy").as("updatetrategy")
0 голосов
/ 09 июля 2018

Ваш маршрут должен указывать только на путь, а не на полный URL. Попробуйте изменить его на cy.route("/admin/portfolio/putstrategy").as("updatetrategy")

Я предполагаю, что это всего лишь фрагмент из вашего теста, но если у вас нет cy.server() до того, как вы наберете cy.route(), вам нужно будет добавить и это.

...