如何在 Cypress 中使用 Chai-jQuery 的 expect().to.match() 断言?取而代之的是使用同名的 BDD 断言
How to use Chai-jQuery's expect().to.match() assertion in Cypress? The BDD assertion with the same name gets used instead
我想使用 Chai-jQuery .match
assertion:
// from Cypress docs:
// match(selector)
expect($emptyEl).to.match(':empty')
但问题是,存在同名的 BDD Assertion:
// from Cypress docs:
// match(RegExp)
expect('testing').to.match(/^test/)
我想使用第一个,但我不知道如何使用 - 每次使用 BDD 断言并引发错误。例如:
expect(cy.get('div')).to.match('#someId')
match requires its argument be a RegExp. You passed: #someId
我尝试将许多不同的东西传递到 expect()
调用中,希望触发不同的重载,但我总是遇到此错误。
那么我需要做什么才能使用 Chai-jQuery .match
seertion?
我认为 Cypress 从传递给 expect()
部分的 type 中选择了 .match()
版本。
有了这个片段
<div id="someId">some text</div>
这会过去的
cy.get('div').then($el => {
expect($el).to.match('#someId') // $el is type object,
// so match will be from chai-jQuery
expect($el.text()).to.match(/some text/) // $el.text() is type string,
// so match will be from chai
})
// Same applies with .should() wrapper
cy.get('div').should('match', '#someId')
cy.get('div').invoke('text').should('match', /some text/)
我想使用 Chai-jQuery .match
assertion:
// from Cypress docs:
// match(selector)
expect($emptyEl).to.match(':empty')
但问题是,存在同名的 BDD Assertion:
// from Cypress docs:
// match(RegExp)
expect('testing').to.match(/^test/)
我想使用第一个,但我不知道如何使用 - 每次使用 BDD 断言并引发错误。例如:
expect(cy.get('div')).to.match('#someId')
match requires its argument be a RegExp. You passed: #someId
我尝试将许多不同的东西传递到 expect()
调用中,希望触发不同的重载,但我总是遇到此错误。
那么我需要做什么才能使用 Chai-jQuery .match
seertion?
我认为 Cypress 从传递给 expect()
部分的 type 中选择了 .match()
版本。
有了这个片段
<div id="someId">some text</div>
这会过去的
cy.get('div').then($el => {
expect($el).to.match('#someId') // $el is type object,
// so match will be from chai-jQuery
expect($el.text()).to.match(/some text/) // $el.text() is type string,
// so match will be from chai
})
// Same applies with .should() wrapper
cy.get('div').should('match', '#someId')
cy.get('div').invoke('text').should('match', /some text/)