大写柏树测试验证



我有一个将文本转换为大写的函数,我想做的是为该函数编写test,并在HTML

中打印结果函数:

module.exports = () => ({
upperCaseName: (name) => {
return name.toUpperCase()
}
});

打印出来:

<h1 cy-data='uppercase'> the result </h1>

我应该如何编写测试?我知道我可以这样做:

cy.get('[cy-data=uppercase]').contains('the result')

但是我想要这样的:

cy.get('[cy-data=uppercase]').to.be.upperCase

cy.get('[cy-data=uppercase]').contains('THE RESULT', { matchCase: true })

,但{ matchCase: true }是默认设置,所以可以只是

cy.get('[cy-data=uppercase]').contains('THE RESULT')

自定义Chai断言


window.chai.Assertion.addProperty('uppercase', function () {
var obj = this._obj;
new chai.Assertion(obj).to.be.a('string');
this.assert(
obj === obj.toUpperCase()
, 'expected #{this} to be all uppercase'    // error message when fail for normal
, 'expected #{this} to not be all uppercase'  // error message when fail for negated
);
});
it('test for upper case (and not uppercase)', () => {
cy.get('[cy-data=uppercase]').invoke('text').should('be.uppercase')
cy.get('[cy-data=lowercase]').invoke('text').should('not.be.uppercase')

})

扩展内部Cypress版本的Chai与新的断言,工作在.should()的重试和超时,以及


或者没有自定义chai断言

it('test for upper case (and not uppercase)', () => {
cy.get('[cy-data=uppercase]').invoke('text')
.should(text => expect(text).to.eq(text.toUpperCase())
cy.get('[cy-data=lowercase]').invoke('text')
.should(text => expect(text).not.to.eq(text.toUpperCase())

})

您也可以使用regex来检查文本是否大写。

cy.get('[cy-data=uppercase]')
.invoke('text')
.should('match', /b[A-Z]+b/)

要检查句子中的所有内容是否都是大写的以及特殊字符,您可以使用正则表达式^[^a-z]*$

cy.get('[cy-data=uppercase]')
.invoke('text')
.should('match', /^[^a-z]*$/)

你可以根据你的需要使用正则表达式。

相关内容

  • 没有找到相关文章

最新更新