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'
)
См. также
© 2017 Cypress.io
Licensed under the MIT License.
https://docs.cypress.io/api/utilities/sinon