Spec-Zone.ru › Cypress

spread

Расширить массив на несколько аргументов.

Идентично .then(), но всегда ожидает структуру, похожую на массив, в качестве объекта.

Синтаксис

.spread(callbackFn)
.spread(options, callbackFn)

Использование

Правильное использование

cy.getCookies().spread(() => {}) // Yield all cookies

Неправильное использование

cy.spread(() => {}) // Errors, cannot be chained off 'cy'
cy.location().spread() // Errors, 'location' does not yield an array

Аргументы

fn (Функция)

Передайте функцию, которая расширит массив на ее аргументы.

options (Объект)

Передайте объект с опциями для изменения поведения по умолчанию .spread().

Опция Значение по умолчанию Описание
timeout defaultCommandTimeout Время ожидания, в течение которого .spread() должен быть разрешён, прежде чем произойдёт срабатывание таймаута

Возвращаемые значения

  • .spread() 'возвращает значение вашей обратной функции'
  • `.spread()` не изменит объект, если будет возвращён `null` или `undefined`.

Примеры

Псевдонимы маршрутов

Расширение массива псевдонимов маршрутов

cy.intercept('/users/*').as('getUsers')
cy.intercept('/activities/*').as('getActivities')
cy.intercept('/comments/*').as('getComments')
cy.wait(['@getUsers', '@getActivities', '@getComments']).spread(
  (getUsers, getActivities, getComments) => {
    // each interception is now an individual argument
  }
)

Куки

Расширение массива куков

cy.getCookies().spread((cookie1, cookie2, cookie3) => {
  // each cookie is now an individual argument
})

Правила

Требования

  • .spread() требует цепочки команд.
  • .spread() требует цепочки команд, которые возвращают структуру, похожую на массив.

Утверждения

  • .spread() выполнит утверждения только один раз и не будет повторён.

Таймауты

  • .spread() может устанавливать таймаут ожидания разрешения возвращённой вами промиссы.

Журнал команд

.spread() не записывается в журнал команд

История

Версия Изменения
0.5.9 .spread() команда добавлена

См. также

  • .each()
  • .then()

© 2017 Cypress.io
Licensed under the MIT License.
https://docs.cypress.io/api/commands/spread

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API