來自:https://juejin.im/post/5ba8b6256fb9a05cd7774432
-------------------------------------------------------------------
expect(sum(1, 1))
返回一個“期望”對象,.toBe(2)
是匹配器。匹配器將 expect()
的結果(實際值)與自己的參數(期望值)進行比較。當 Jest 運行時,它會跟蹤所有失敗的匹配器,並打印出錯誤信息。
toBe 使用 Object.is 判斷是否嚴格相等。
toEqual 遞歸檢查對象或數組的每個字段。
toBeNull 只匹配 null。
toBeUndefined 只匹配 undefined。
toBeDefined 只匹配非 undefined。
toBeTruthy 只匹配真。
toBeFalsy 只匹配假。
toBeGreaterThan 實際值大於期望。
toBeGreaterThanOrEqual 實際值大於或等於期望值
toBeLessThan 實際值小於期望值。
toBeLessThanOrEqual 實際值小於或等於期望值。
toBeCloseTo 比較浮點數的值,避免誤差。
toMatch 正則匹配。
toContain 判斷數組中是否包含指定項。
.toHaveProperty(keyPath, value) 判斷對象中是否包含指定屬性。
toThrow 判斷是否拋出指定的異常。
toBeInstanceOf 判斷對象是否是某個類的實例,底層使用 instanceof。
所有的匹配器都可以使用 .not
取反:
test('Adding 1 + 1 does not equal 3', () => { expect(1 + 1).not.toBe(3) })
對於 Promise 對象,我們可以使用 .resolves
和 .rejects
:
// .resolves test('resolves to lemon', () => { // make sure to add a return statement return expect(Promise.resolve('lemon')).resolves.toBe('lemon') }) // .rejects test('rejects to octopus', () => { // make sure to add a return statement return expect(Promise.reject(new Error('octopus'))).rejects.toThrow( 'octopus', ) })