Spec-Zone.ru › Cypress

Cypress.sinon

Cypress автоматически включает Sinon.JS и предоставляет его как Cypress.sinon. Поскольку команды cy.spy и cy.stub уже оборачивают методы Sinon, наиболее распространённое использование Cypress.sinon — это предоставление гибких сопоставителей при выполнении утверждений.

Синтаксис

Cypress.sinon.match(value)
Cypress.sinon.match.<matcher name>

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

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

Cypress.sinon.match.string

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

cy.sinon.match.string // Errors, cannot be chained off 'cy'

Примеры

match.string

Этот пример взят из рецепта Корневой стиль. Представьте код приложения, где метод setProperty вызывается для изменения переменной CSS:

document.querySelector('input[type=color]').addEventListener('change', (e) => {
  document.documentElement.style.setProperty(
    '--background-color',
    e.target.value
  )
})

Мы можем написать тест, чтобы подтвердить, что метод setProperty был вызван с двумя строками; нас не интересует значение первой строки, но мы хотим убедиться, что это действительно была строка.

cy.document()
  .its('documentElement.style')
  .then((style) => {
    cy.spy(style, 'setProperty').as('setColor')
  })

cy.get('input[type=color]').invoke('val', '#ff0000').trigger('change')

// we don't care about '--background-color' exact
// value but know it should be a string
cy.get('@setColor').should(
  'have.been.calledWith',
  Cypress.sinon.match.string,
  '#ff0000'
)

См. также

  • Пример страницы Шпионы, фикстуры и часы
  • Документация по сопоставителям Sinon
  • Встроенные инструменты
  • cy.spy()
  • cy.stub()
  • Руководство по Фикстурам, шпионам и часам

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

Spec-Zone.ru

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