#TypeScriptでJestを使ってモジュールをモック(mock)する

TypeScriptでjest.mock()でモジュールをモック(mock)すると、モックにはMock functionsの型が付与されていません。 だから、Mock functionsを使ってモックの設定をするとエラーになります。 これを解決するには、 下記のようにjest.mocked()にモックを渡します。 その戻り値にはMock functionsの型が付与されてています。 その戻り値にモックの設定を付与します。

下記の例ではfs.promise.readFileをモックして、モックの設定をしています。

import { readFile } from 'node:fs/promises'
jest.mock('node:fs/promises')
import { targetFunc } from './target.js'

const mockedReadFile = jest.mocked(readFile)
// モックの設定を付与
mockedReadFile.mockResolvedValue('ファイルの中身')
targetFunc()