如果想從頭學起Cypress,可以看下面的系列文章哦
https://www.cnblogs.com/poloyy/category/1768839.html
背景
- Cypress 的斷言庫是基於 Chai 斷言庫的
- 並且增加了對 Sinon-Chai,Chai-jQuery 斷言庫的支持,帶來了強大的斷言功能
- Cypress 支持 BDD(expect/should)和 TDD(assert)格式的斷言
BDD、TDD 格式斷言的簡單栗子
BDD
TDD
Cypress 命令內置的斷言
Cypress 命令通常具有內置的斷言,這些斷言將導致命令自動重試,以確保命令成功(或者超時后失敗)
it('cypress 命令自帶斷言', function () { cy.wrap({body: {name: 'poloyy'}}) .its('body') .should('deep.eq', {name: 'poloyy'}) });
Cypress 有哪些常見內置斷言操作的命令
Cypress 提供兩個方法來斷言
隱性斷言:should()、and()
- should()、and() 是 Cypress 推崇的方式
- and() 和 should() 其實使用方式和效果是完全一樣的,具體可以看這篇文章:https://www.cnblogs.com/poloyy/p/13678233.html
cy .get('form') .should('be.visible') .and('have.class', 'open')
顯性斷言:expect
expect 允許傳入一個特定的對象並且對它進行斷言
expect(true).to.be.true
混合使用隱性斷言和顯性斷言
cy.get('.action-email') .type('fake@email.com') .should(($el) => { expect($el).to.have.value('fake@email.com') expect($el).to.be.visible })
TDD、BDD 常見斷言
BDD 形式的斷言
TDD 形式的斷言