メインコンテンツまでスキップ

Jest

セットアップ

  • デフォルトの設定では、同時に複数のテストを実行する。DB 操作を伴うテスト等では失敗の原因になるので、--runInBand(or -i)オプションをつけて、1 つずつテストを実行すること。

  • テストのセットアップファイルの指定は、package.jsonsetupTestFrameworkScriptFile で行う。

babel 関係

yarn add babel-core babel-jest babel-preset-env regenerator-runtime

.babelrc

{
"presets": ["env"]
}

コンポーネントのモック

// Auto Mock
// (インポートしたクラスのすべてのファンクションが自動的にモックされ
// undefinedを返すようになる)
jest.mock('../PageViewPostsGrid');

// コンポーネントがClassではなくFunctionの場合は、renderメソッドのMockが必要
beforeAll(() => {
PageViewPostsGrid.mockImplementation(() => ({
render: () => <div>mock</div>,
}));
});

setImmediate 等

setImmediate, setTimeout, process.nextTick を使うときは、必ず done()を併用すること。さもないと、テストが落ちたり、expect の挙動もおかしくなった。

Enzyme

Shallow Rendering 参考記事