Jest
セットアップ
-
デフォルトの設定では、同時に複数のテストを実行する。DB 操作を伴うテスト等では失敗の原因になるので、
--runInBand
(or-i
)オプションをつけて、1 つずつテストを実行すること。 -
テストのセットアップファイルの指定は、
package.json
のsetupTestFrameworkScriptFile
で行う。
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 の挙動もおかしくなった。