Cypress系列(12)- Cypress 編寫和組織測試用例篇 之 斷言


如果想從頭學起Cypress,可以看下面的系列文章哦

https://www.cnblogs.com/poloyy/category/1768839.html

 

前言

  • 斷言是測試用例的必要組成部分
  • 沒有斷言,咱們就不知道測試用例的有效性,到底通過沒通過
  • Cypress 的斷言基於 Chai 斷言庫,並且增加了對 Sinon-Chai、Chai-jQuery 斷言庫的支持,其中就包括 BDD 和 TDD 格式的斷言

 

BDD 格式的斷言

  • expect
  • should

 

TDD 格式的斷言

assert

 

常見的斷言方式

以下列出了常見的元素斷言

長度(Length)

// 重試,直至找到3個匹配的<li.selected>
cy.get('li.selected').should('have.length',3)

重點: hava.length 

 

類(Class)

// 重試,直至這個input不再有disabled的class
cy.get('form').find('input').should('not.hava.class','disabled')

重點: not.hava.class 

 

值(Value)

// 重試,直至這個textarea的值為 poloyy
cy.get('textarea').should('have.value','poloyy')

重點: have.value 

 

文本內容(Text Content)

// 重試,直至這個span不再包含'click me'
cy.get('a').parent('span.help').should('not.contain','click me')

重點: not.contain 

 

針對元素是否可見(Visibility)

// 重試,直至button可見
cy.get('button').should('be.visible')

重點: be.visible 

 

針對元素是否存在(Existence)

// 重試,直至 id=loading 元素不再存在
cy.get('#loading').should('not.exist')

重點: not.exist 

 

針對元素狀態(State)

// 重試,直至radio狀態是checked
cy.get(':radio').should('be.checked')

重點: be.checked 

 

針對 CSS

// 重試,直至complete這個類有匹配的css為止
cy.get('.completed').should('have.css','text-decoration','line-through')

重點: hava.css 

 

針對回調函數(callback)

如果內建的斷言沒有滿足你的需求,可以自己寫斷言函數,然后作為一個回調以參數的形式傳給 .should() 

假設源HTML如下

<div class="main-abc123 heading-xyz987">Introduction</div>

 

自己寫的斷言函數

 


免責聲明!

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



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