Jest
パーフェクトなテストのソリューションはありません。とはいえ、jestは優れたTypeScriptサポートを提供する素晴らしいユニットテストのオプションです。
注意:単純なノードのpackage.json setupで始めることを前提としています。また、すべてのTypeScriptファイルは
src
フォルダに置かれていなければなりません。このフォルダは、きれいなプロジェクト設定のために(Jestを使わなくても)常に推奨されます。
ステップ1:インストール
npmを使用して次をインストールします。
説明:
jest
フレームワーク(jest
)をインストールしますjest
の型(@types/jest
)をインストールしますJest用のTypeScriptプリプロセッサ(
ts-jest
)をインストールします。これにより、Jestはその場でTypeScriptをトランスパイルすることができ、source-mapをサポートしますこれらのすべてを、あなたのdevの依存関係に保存してください(テストはほとんど常にnpmのdev-dependencyです)
ステップ2:Jestを設定する
次のjest.config.js
ファイルをプロジェクトのルートに追加します:
説明:
私達は_すべての_TypeScriptファイルをプロジェクトの
src
フォルダに入れることを常にお勧めします。また、これに倣いroots
設定ではsrc
フォルダを指定します。testMatch
設定は、ts/tsx/jsフォーマットで書かれた.test/.specファイルを発見するためのglobのパターンマッチャーです。transform
設定は、ts/tsxファイルに対してts-jest
を使うようjest
に指示します。
手順3:テストを実行する
あなたのプロジェクトのルートからnpx jest
を実行すると、jestはあなたのテストを実行します。
オプション:npmスクリプトのスクリプトターゲットを追加する
package.json
に追加してください:
これにより、簡単な
npm t
でテストを実行できます。また、
npm t --watch
のwatchモードでも。
オプション:watchモードでjestを実行する
npx jest --watch
例
foo.ts
ファイルの場合:
単純な
foo.test.ts
:
ノート:
Jestは、グローバルな
test
関数を提供します。Jestには、グローバルな
expect
の形でアサーションがあらかじめ組み込まれています。
Example async
Jestには、async/awaitサポートが組み込まれています。例えば:
enzymeの例
enzymeのDOMサポートは、Reactコンポーネントをテストすることができます。enzymeを設定するには3つのステップがあります:
enzyme、enzymeの型、より良いenzymeのスナップショットシリアライザ、あなたのreactバージョンのためのenzyme-adapter-reactをインストールします。
npm i enzyme @types/enzyme enzyme-to-json enzyme-adapter-react-16 -D
"snapshotSerializers"
と"setupTestFrameworkScriptFile"
をjest.config.js
に追加します:
src/setupEnzyme.ts
ファイルを作成します。
次に、reactコンポーネントとテストの例を示します:
checkboxWithLabel.tsx
:
checkboxWithLabel.test.tsx
:
私たちがjestを好きな理由
ビルトインのアサーションライブラリ
優れたTypeScriptサポート
非常に信頼できるテストwatcher
スナップショットテスト
ビルトインのカバレッジレポート
ビルトインのasync/awaitサポート
最終更新