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以前執行,如下的例子能夠方便咱們認識到執行的順序