fs
とかchild_process
とかそういうやつをモックする方法- jest 単体の機能では実現できないのでハマるポイント
- たぶん jest.MockedFunction でも同じことができる
サンプルコード
import { execSync } from 'child_process';
// まず全体をモックする
jest.mock('child_process');
// モックにする
const mockExecSync = execSync as jest.MockedFunction<typeof execSync>;
describe('execSync', () => { it('spyOn execSync', () => { // 対象をコール execSync('echo 1'); // 通る expect(mockExecSync).toHaveBeenCalled(); // 通る, echo 2とかにするとちゃんとコケてくれる expect(mockExecSync).toHaveBeenCalledWith('echo 1'); });
});