まかろぐ

PCゲームのこととかWeb関連のこと

JestのMockのやり方(簡易版)

よく忘れてしまうのでメモ

下記のように色々なやり方がありますが、手軽にできるやり方で jestjs.io

Mockしたいメソッドをjest.fn()としたオブジェクトを作成

const mockObj = {
  mockFunc: jest.fn(),
};

テストしたいクラスにMockオブジェクトを注入

inversifyを使っている場合はコンテナから持って来るのではなく頑張ってnewで作る

const testInstance = new TestClass(
  container.get('otherClass'),
  mockObj as OriginalClass,
);
testInstance.handle();

実行中にjest.fn()が呼ばれた回数や、その引数などをチェック可能

expect(mockObj.mockFunc.mock.calls.length).toBe(1); // mockが呼ばれた回数
expect(mockObj.mockFunc.mock.calls[0][0]).toBe('arg1'); // 引数1
expect(mockObj.mockFunc.mock.calls[0][1]).toBe('arg2'); // 引数2