たれぱんのびぼーろく

わたしの備忘録、生物学とプログラミングが多いかも

mocking with Jest

spy と stub の両機能を達成するために、spy 可能なフックを持ちつつ返り値を実装できるmock functionが提供されている.

spy としての利用: 何回 call されたとか、spy での入出力とか
stub としての利用: 値を吐き出す

APIs

mock

  • jest.fn(): mock function (mockFn) generation

  • mockFn.mock.instances: mock function list

  • mockFn.mockClear(): clear the mock function's spy results
  • mockFn.mockReset(): clear the mock function's spy results & stub functionality
  • mockFn.mockRestore(): mockFn.mockReset() and restore original/non-mocked functionality

spy functionality

  • mockFn.mock.calls: spy call arguments
  • mockFn.mock.results: spy result (status & value, e.g. return & 5, throw & Error("hello"))

stub functionality

mockFn.mockImplementation[Once](implementation)

stub suger syntaxes

  • mockFn.mockReturnValue[Once](value): suger of () => value implementation
  • mockFn.mockReturnThis(): suger of () => this implementation
  • mockFn.mockResolvedValue[Once](value): suger of () => Promise.resolve(value) implementation
  • mockFn.mockRejectedValue[Once](): suger of () => Promise.reject(value) implementation

Usage

Spy

do spy -> expect(mock.calls)

関数を引数として渡す場合にspyを渡して記録が可能.