インストール
モジュールをインストールします
npm install @wordpress/jest-preset-default --save-dev
注意: このパッケージは、長期サポートステータスのあるNode.jsバージョンを必要とします(アクティブLTSまたはメンテナンスLTSリリースを確認)。古いバージョンとは互換性がありません。
セットアップ
jest.config.jsonまたはpackage.jsonのjestフィールドを介して
{
"preset": "@wordpress/jest-preset-default"
}
使用法
含まれるオプションの簡単な説明
moduleNameMapper
– すべてのcss
およびscss
ファイルに含まれるCSSスタイルはスタブ化されます。modulePaths
– プロジェクトのルートディレクトリがモジュールを解決する際の検索場所として使用されます。setupFiles
– 各テストの前に実行され、テスト環境で必要なグローバル変数を設定するコードが実行されます。setupFilesAfterEnv
– 各テストの前に、Console
オブジェクトおよびReact
コンポーネントのテストフレームワークへのサポートを改善するコードが実行されます。testEnvironment
– すべてのテストに対してjsdom
環境がデフォルトで有効になります。testMatch
–/test/
および/__tests__/
サブフォルダー内のテストを検索し、.test.*
サフィックスを持つすべてのファイルにも一致します。.js
、.jsx
、.ts
、または.tsx
サフィックスを持つテストファイルを検出します。デフォルトのJest構成と比較して、.spec.*
サフィックスを持つファイルには一致しません。testPathIgnorePatterns
– テストファイルを検索する際にnode_modules
およびvendor
ディレクトリを除外します。transform
– デフォルトのbabel-jestトランスフォーマーを保持します。
enzymeの使用
歴史的に、このパッケージはenzyme
を使用していましたが、@testing-library/react
に対するサポートが削除され、主な理由はReact 18へのアップグレードを妨げないためです。
enzyme
を使用したい場合は、以下の手順に従ってReact 17アダプターを手動で提供することで、引き続き使用できます。
enzyme依存関係をインストールするには、次のコマンドを実行します:
npm install --save enzyme
React 17アダプター依存関係をインストールするには、次のコマンドを実行します:
npm install --save @wojtekmaj/enzyme-adapter-react-17
React 17アダプターを使用するには、setupFilesAfterEnv
設定でこれを使用します:
// It "mocks" enzyme, so that we can delay loading of
// the utility functions until enzyme is imported in tests.
// Props to @gdborton for sharing this technique in his article:
// https://medium.com/airbnb-engineering/unlocking-test-performance-migrating-from-mocha-to-jest-2796c508ec50.
let mockEnzymeSetup = false;
jest.mock( 'enzyme', () => {
const actualEnzyme = jest.requireActual( 'enzyme' );
if ( ! mockEnzymeSetup ) {
mockEnzymeSetup = true;
// Configure enzyme 3 for React, from docs: http://airbnb.io/enzyme/docs/installation/index.html
const Adapter = jest.requireActual(
'@wojtekmaj/enzyme-adapter-react-17'
);
actualEnzyme.configure( { adapter: new Adapter() } );
}
return actualEnzyme;
} );
依存関係をインストールするには、次のコマンドを実行します:
``````bash
npm install --save enzyme-to-json
`
最後に、snapshotSerializers
の配列にenzyme-to-json/serializer
を追加する必要があります:
{
snapshotSerializers: [ 'enzyme-to-json/serializer' ];
}
このパッケージへの貢献
これはGutenbergプロジェクトの一部である個別のパッケージです。このプロジェクトはモノレポとして整理されています。特定の目的を持つ複数の自己完結型ソフトウェアパッケージで構成されています。このモノレポ内のパッケージはnpmに公開され、WordPressや他のソフトウェアプロジェクトで使用されています。
このパッケージやGutenberg全体への貢献について詳しく知りたい場合は、プロジェクトの主な貢献者ガイドをお読みください。