Jest の マッチャ(matcher) は
expect(実際の値).マッチャ(期待する値)
の形で、テストの条件を表すもの。
→ 正しく動いているか? バグがないか? をチェックするための基本ツール。
マッチャ | 意味 | 使い方例 |
---|---|---|
toBe |
厳密な等価(===) | expect(1 + 2).toBe(3) |
toEqual |
オブジェクトや配列の中身の等価 | expect({ a: 1 }).toEqual({ a: 1 }) |
toBeTruthy |
真(true) | expect(value).toBeTruthy() |
toBeFalsy |
偽(false) | expect(value).toBeFalsy() |
toBeNull |
null | expect(value).toBeNull() |
toBeUndefined |
undefined | expect(value).toBeUndefined() |
toBeDefined |
定義されている(undefinedではない) | expect(value).toBeDefined() |
マッチャ | 意味 | 使い方例 |
---|---|---|
toBeGreaterThan |
より大きい | expect(10).toBeGreaterThan(5) |
toBeLessThan |
より小さい | expect(5).toBeLessThan(10) |
toBeGreaterThanOrEqual |
以上 | expect(5).toBeGreaterThanOrEqual(5) |
toBeCloseTo |
浮動小数点の近似 | expect(0.1 + 0.2).toBeCloseTo(0.3) |
toMatch |
正規表現にマッチする | expect('Hello Vue').toMatch(/Vue/) |
マッチャ | 意味 | 使い方例 |
---|---|---|
toContain |
配列や文字列に含まれている | expect([1, 2, 3]).toContain(2) |
toContainEqual |
配列の中に等しいオブジェクトがある | expect([{ a: 1 }]).toContainEqual({ a: 1 }) |
toHaveLength |
配列や文字列の長さ | expect([1, 2, 3]).toHaveLength(3) |
toHaveProperty |
オブジェクトにプロパティがある | expect(obj).toHaveProperty('name') |
マッチャ | 意味 | 使い方例 |
---|---|---|
toHaveBeenCalled |
呼び出された | expect(mockFn).toHaveBeenCalled() |
toHaveBeenCalledTimes |
指定回数呼ばれた | expect(mockFn).toHaveBeenCalledTimes(2) |
toHaveBeenCalledWith |
特定の引数で呼ばれた | expect(mockFn).toHaveBeenCalledWith('arg') |
toHaveBeenLastCalledWith |
最後にその引数で呼ばれた | expect(mockFn).toHaveBeenLastCalledWith('arg') |
toHaveReturned |
戻り値がある | expect(mockFn).toHaveReturned() |
toHaveReturnedWith |
指定の戻り値を返した | expect(mockFn).toHaveReturnedWith(42) |