spy と stub の両機能を達成するために、spy 可能なフックを持ちつつ返り値を実装できるmock function
が提供されている.
spy としての利用: 何回 call されたとか、spy での入出力とか
stub としての利用: 値を吐き出す
APIs
mock
jest.fn()
: mock function (mockFn
) generationmockFn.mock.instances
: mock function listmockFn.mockClear()
: clear the mock function's spy resultsmockFn.mockReset()
: clear the mock function's spy results & stub functionalitymockFn.mockRestore()
:mockFn.mockReset()
and restore original/non-mocked functionality
spy functionality
mockFn.mock.calls
: spy call argumentsmockFn.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
implementationmockFn.mockReturnThis()
: suger of() => this
implementationmockFn.mockResolvedValue[Once](value)
: suger of() => Promise.resolve(value)
implementationmockFn.mockRejectedValue[Once]()
: suger of() => Promise.reject(value)
implementation
Usage
Spy
do spy -> expect(mock.calls)
関数を引数として渡す場合にspyを渡して記録が可能.