如何在 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/)