jest でコールバックのテストをしたいとき
以下のようなコールバックを受けて実行する関数があります。
この関数がコールバックを(何回)実行したか、コールバックが受け取った引数は何か、戻り値は何かをテストしたい場合は、mockを利用します。(hoge関数は適当です)
const hoge = (type, callback, arg) => {
if (type === true) {
callback(arg)
}
return 'hoge'
}
export default hoge
import { jest } from '@jest/globals'
import hoge from './hoge.js'
describe('hoge関数のテスト', () => {
const mockCallback = jest.fn((x) => 42 + x)
hoge(true, mockCallback, 3)
test('コールバックが呼ばれた回数は1回', () => {
expect(mockCallback.mock.calls.length).toBe(1)
})
test('コールバックの引数は3', () => {
expect(mockCallback.mock.calls[0][0]).toBe(3)
})
test('コールバックの戻り値は45', () => {
expect(mockCallback.mock.results[0].value).toBe(45)
})
})
最近のコメント