Cypress系列(7)- Cypress 編寫和組織測試用例篇 之 Mocha的介紹


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

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

 

前言

  • Cypress 底層依賴於很多優秀的開源測試框架,其中就有 Mocha
  • Mocha 是一個適用於 Node.js 和瀏覽器的測試框架,它使得異步測試變得簡單

 

JS 語言帶來的問題

JS 是單線程異步執行的,這使得測試變得復雜,因為無法像測試同步執行的代碼那樣,直接判斷函數的返回值是否符合預期(因為給函數賦值時函數可能並未執行)

 

如何驗證異步函數的正確性

  • 需要測試框架支持回調,Promise 或者其他方式來驗證異步函數的正確性
  • Mocha 提供了出色的異步支持包括  Promise ,從而使得異步測試變得簡單

 

Cypress 結合 Mocha

Cypress 繼承並擴展了 Mocha 對異步的支持

 

Mocha 提供了什么

  • 多種接口來定義測試套件,Hooks,單個測試( Individual )
  • BDD(Behavior-Driven Development,行為驅動開發
  • TDD(Test-Driven Development,測試驅動開發
  • Exports、QUnit、Require

 

Cypress 采納了 Mocha 的 BDD 語法

  • 該語法非常適合集成測試和單元測試
  • 在 Mocha 中,一個 BDD 風格的測試用例看起來是這樣的

 

常見 Mocha 模塊

Cypress 將 Mocha 硬編碼在自己的框架中,所以編寫測試用例都是基於 Mocha 提供的如下基本功能模塊:

  •  describe() 
  •  context() 
  •  it() 
  •  before() 
  •  beforeEach() 
  •  afterEach() 
  •  after() 
  •  .only() 
  •  .skip() 

 

對於一條可執行的測試用例來說,有以下兩個必要的組成部分

describe()

  • 代表測試套件,里面可以設定 context() ,也可以包括多個測試用例 it() ,還能嵌套子測試套件
  • 一個測試套件可以不包括任何鈎子函數(Hook),但必須包含至少一條測試用例 it() 

 

it()

代表一條測試用例

 

其他模塊

  • 除上述兩個功能模塊外,其他功能模塊對於一條可執行的測試來說,都是可選的
  • 例如  context() 是 describe() 的別名,其行為方式是一致的,直接用 context() 代替 describe() 也是可以的哦

 可以看到,一共有三層的 context() ;

運行成功看看下面的結果

 


免責聲明!

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



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