Jest
パーフェクトなテストのソリューションはありません。とはいえ、jestは優れたTypeScriptサポートを提供する素晴らしいユニットテストのオプションです。
注意:単純なノードのpackage.json setupで始めることを前提としています。また、すべてのTypeScriptファイルは
srcフォルダに置かれていなければなりません。このフォルダは、きれいなプロジェクト設定のために(Jestを使わなくても)常に推奨されます。
ステップ1:インストール
npmを使用して次をインストールします。
npm i jest @types/jest ts-jest -D説明:
jestフレームワーク(jest)をインストールしますjestの型(@types/jest)をインストールしますJest用のTypeScriptプリプロセッサ(
ts-jest)をインストールします。これにより、Jestはその場でTypeScriptをトランスパイルすることができ、source-mapをサポートしますこれらのすべてを、あなたのdevの依存関係に保存してください(テストはほとんど常にnpmのdev-dependencyです)
ステップ2:Jestを設定する
次のjest.config.jsファイルをプロジェクトのルートに追加します:
module.exports = {
"roots": [
"<rootDir>/src"
],
"testMatch": [
"**/__tests__/**/*.+(ts|tsx|js)",
"**/?(*.)+(spec|test).+(ts|tsx|js)"
],
"transform": {
"^.+\\.(ts|tsx)$": "ts-jest"
},
}説明:
私達は_すべての_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サポート
最終更新
役に立ちましたか?