Jest

vue cli  擁有開箱即用的經過 Jest 或 Mocha 進行單元測試的內置選項。vue

因爲mocha單元測試集合在vue cli下有問題,能夠使用 jest 來完成單元測試。正則表達式

 

 

語法:數據庫

普通匹配器:數組

tobe :   是否精確匹配promise

 

toBe用的是 js 中的 Object.is() ,屬於ES6中的特性,因此不能檢測對象,若是要檢測對象的值的話,須要用到 toEqual 。異步

toEquel :   遞歸檢查對象或者數組中的每一個字段。函數

 

  • toBeNull只匹配null
  • toBeUndefined只匹配undefined
  • toBeDefine與toBeUndefined相反
  • toBeTruthy匹配任何if語句爲真
  • toBeFalsy匹配任何if語句爲假

 

數字匹配器:單元測試

大多數的比較數字有等價的匹配器。測試

  • 大於。toBeGreaterThan()
  • 大於或者等於。toBeGreaterThanOrEqual()
  • 小於。toBeLessThan()
  • 小於或等於。toBeLessThanOrEqual()
  • toBe和toEqual一樣適用於數字
    注意:對比兩個浮點數是否相等的時候,使用toBeCloseTo而不是toEqual

如:spa

 

 

若是使用toBe就會產生如下結果:

 

字符串
使用toMatch()測試字符串,傳遞的參數是正則表達式。

數組
如何檢測數組中是否包含特定某一項?能夠使用toContain()

 

 另外
若是你想在測試特定函數的時候拋出一個錯誤,在它調用的時候能夠使用toThrow。

 

 

 

測試異步代碼

在實際開發過程當中,咱們常常會遇到一些異步的JavaScript代碼。當你有以異步方式運行的代碼的時候,Jest須要知道當前它測試的代碼是否已經完成,而後它能夠轉移動另外一個測試。也就是說,

測試用例必定要在測試對象結束以後纔可以結束

爲了達到這一目的,Jest有多種方法能夠作到。

 

回調
  最多見的異步模式就是回調函數。

  注意:回調函數和異步沒有必然的聯繫,回調只是異步的一種調用方式

 

Promise

接受promise 時   

 

拒絕promise 時

 

Async/Await

 

 

 爲屢次測試重複設置

若是你有一些要爲屢次測試重複設置的工做,能夠使用beforeEach和afterEach。

有這樣一個需求,須要咱們在每一個測試以前調用方法initializeCityDatabase(),在每一個測試後,調用方法clearCityDatabase()

一次性設置
在某些狀況下,你只須要在文件的開頭作一次設置。這種設置是異步行爲的時候,你不太可能一行處理它。Jest提供了beforeAll和afterAll處理這種狀況。

 

做用域


默認狀況下,before和after的塊能夠應用到文件中的每個測試。

此外能夠經過describe塊來將將測試中的某一塊進行分組。

當before和after的塊在describe塊內部的時候,則只適用於該describe塊內的測試。

好比說,咱們不只有一個城市的數據庫,還有一個食品數據庫。咱們能夠爲不一樣的測試作不一樣的設置︰

 

注意:頂級的beforeEach描述塊內的beforeEach以前執行,如下的例子能夠方便咱們認識到執行的順序

 

 

相關文章
相關標籤/搜索