💬
jest.mockedでモックオブジェクトを型付きで取得する
jest + TypeScript環境で、モックした関数のmockResolvedValue
等の関数を利用する時、面倒なので以下のようにas jest.Mock
で型を変換して実行していたが、
import { hoge } from './hoge';
jest.mock('./hoge');
const hogeMock = hoge as jest.Mock;
hogeMock.mockResolvedValue(…);
// シンプルに以下など
(hoge as jest.Mock).mockResolvedValue(…);
jest.mocked
関数を使うと、モックした関数の引数・返り値の型が効いた状態でモックオブジェクトを取得できるのでおすすめ。
import { hoge } from './hoge';
jest.mock('./hoge');
const mockedHoge = jest.mocked(hoge);
mocked.mockResolvedValue(…); // 型が効く
mocked.mock.calls[0] // ここも型が効く
Discussion