Cypress系列(61)- 斷言最佳實踐


如果想從頭學起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 形式的斷言

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM