Cypress系列(9)- Cypress 編寫和組織測試用例篇 之 鉤子函數Hook

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

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

 

Hook

就是常說的鉤子函數,在 pytest 框架裡面也有 hook 這個概念;接下來就讓我們來看看 Mocha 提供的 Hook 函數叭!

 

Mocha 提供的 Hook 函數

  •  before()
  •  beforeEach()
  •  afterEach()
  •  after()

 

hook 的作用

利用鉤子函數可以在所有測試用例執行前做一些預置操作(如:准被測試數據、測試環境)

或者在測試結束後做一些後置操作(如:清理測試數據)

 

hook 具體寫法的栗子(比較長,耐心敲,耐心看)

運行結果

知識點

若包含多級測試套件,那麼父級套件、祖父級套件聲明的 hook 函數會作用於所有子級套件的測試用例,孫子級套件的測試用例…以此類推(如:栗子中的二級套件、孫子級套件)

 

before()

  • 該測試套件下,所有測試用例的統一前置操作
  • 它在一個 describe() 或 context() 內只會執行一次,在所有 it() 之前執行
  • 在運行結果可以看到是叫 BEFORE ALL 

 

after()

  • 該測試套件下,所有測試用例的統一後置操作
  • 它在一個  describe()  或 context() 內只會執行一次,在所有 it() 之前執行
  • 在運行結果可以看到是叫  AFTER ALL ,而且是在最後一行

 

beforeEach()

  • 該測試套件下,每個測試用例的前置操作
  • 一個  describe()  或 context() 內有多少個測試用例 it() ,就會執行幾次 beforeEach() 
  • 在運行結果可以看到是叫 BEFORE EACH 

 

afterEach()

  • 該測試套件下,每個測試用例的後置操作
  • 一個 describe()  或 context() 內有多少個測試用例 it() ,就會執行幾次  afterEach()  
  • 在運行結果可以看到是叫 AFTER EACH