Jest でモック関数を作成し、呼び出し内容をテストしたい場合があると思います。
そのときに、toHaveBeenCalledWith
を使えば、呼び出し時の引数もテストできます。
しかし、 toHaveBeenCalledWith
の中身が複雑・膨大になるような場合は、snapshot を利用したくなります。
そんなときは、モック関数に対して toMatchSnapshot
を呼び出すと便利です。
const myMock = jest.fn() expect(myMock).toMatchSnapshot()
これで同階層のディレクトリ内に、./__snapshots__/testname.spec.ts.snap
が作成されます。snapshot の中身は、モック関数の呼出履歴です。
// Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Test spec name`] = ` [MockFunction] { "calls": Array [ Array [ // ここに引数 ], ], "results": Array [ // ここに返り値 ], } `;
参考: [New matcher request] toHaveBeenCalled{Last}MatchingSnapshot · Issue #2814 · facebook/jest