Configuring Jest
Jestの構成はプロジェクトの package.json
ファイルか、 jest.config.js
ファイルまたは --config <path/to/js|json>
オプションで定義することができます。 package.json
にJestの構成を保存したい場合は、Jestが設定を見つけられるように"jest"キーが最上段に設定されなければなりません。
{ "name": "my-project", "jest": { "verbose": true } }
またはJavaScriptファイルで
// jest.config.js module.exports = { verbose: true, };
出力される構成はJSON形式でシリアライズできなければならないことに留意して下さい。
--config オプションを使用した場合、JSON ファイルには"jest"キーを含んではいけません。
{ "bail": true, "verbose": true }
オプション #
オプションを指定することで package.json
内でのJestの動作をコントロールできます。Jestの哲学はそのままでも十分に動作することですが、時としてより強力な設定が必要となることもあるでしょう。
リファレンス #
automock
[boolean] #
デフォルト: false
このオプションは、デフォルトでは無効となっています。 テストが殆ど無い既存のコードベースを抱えた大きな組織にJestを導入する際、ユニットテストを徐々に適用していく場合にこのオプションが有用です。 jest.mock(moduleName)
関数を使うことで明示的にモジュールを自動的にモックできます。
デフォルトでは fs
のようなコア機能のモジュールはモックされません。それらのモジュールは jest.mock('fs')
のように明示的にモックする必要があります。
注意: 自動モック機能は大規模なプロジェクトで特に顕著にパフォーマンスに影響します。詳細や解決策については、こちらを参照して下さい。
browser
[boolean] #
デフォルト: false
モジュールの依存関係を解決する際に package.json
内に記述されたBrowserifyの "browser"
フィールドを優先します。 一部のモジュールはNode上で動作しているかブラウザ上で動作しているかによって異なるバージョンを出力します。
bail
[boolean] #
デフォルト: false
デフォルトではJestは全テストを実行し、完了時にコンソールに発生した全てのエラーを表示します。bailオプションは最初のエラー発生直後にテストを停止したい場合に指定します。
cacheDirectory
[string] #
デフォルト: "/tmp/<path>"
Jestがキャッシュする依存情報を格納するディレクトリを指定します。
Jestはテスト実行中に必要となるかもしれないファイルシステムを集めやすくするため、依存関係のツリーを一度(前もって) 読み込んでキャッシュします。 この設定オプションによりJestがディスク上にキャッシュを格納する場所を指定できます。
collectCoverage
[boolean] #
デフォルト: false
テスト実行中にカバレッジ情報を取得するかどうかを指定します。 カバレッジ取得を指定して実行される全てのファイルについて書き換えるので、テストが大幅に遅くなることがあります。
collectCoverageFrom
[array] #
デフォルト: undefined
カバレッジ情報を取得する対象のファイルを指定する globパターンの配列を設定します。 ファイルが指定されたglobパターンに一致すれば、ファイルにテストが存在せずテストスイートが必要としないファイルであってもカバレッジ情報を収集します。
例:
{ "collectCoverageFrom" : ["**/*.{js,jsx}", "!**/node_modules/**", "!**/vendor/**"] }
上記の設定ではプロジェクトの rootDir
配下の**/node_modules/**
または**/vendor/**
に一致するものを除いたすべてのファイルからカバレッジ情報を取得します。
注意: このオプションを使用するにはcollectCoverage
パラメータがtrueに設定されているか--coverage
オプションを付けてjestを実行する必要があります。
coverageDirectory
[string] #
デフォルト: undefined
カバレッジ情報を出力するファイルを格納するディレクトリを指定します。
coveragePathIgnorePatterns
[array<string>] #
デフォルト: ["/node_modules/"]
テスト実行前に全てのファイルのパスに対して照合する正規表現パターンの配列を指定します。指定したパターンのいずれかに一致したファイルはカバレッジ情報が取得されません。
パターン文字列はフルパスに対して照合されます。 <rootDir>
文字列トークンをプロジェクトのルートディレクトリとして指定することで、異なるルートディレクトリを持ちうる異なる環境のファイルを誤って無視してしまうことを防ぐことができます。 例: ["<rootDir>/build/", "<rootDir>/node_modules/"]
。
coverageReporters
[array<string>] #
デフォルト: ["json", "lcov", "text"]
カバレッジの要約を出力する際のレポート形式のリストを指定します。任意のistanbulモジュールのレポート形式 が使用できます。
注意: このオプションを設定した場合、既定値は上書きされます。コンソール出力でカバレッジ情報を確認するには"text"
または "text-summary"
をリストに追加して下さい。
coverageThreshold
[object] #
デフォルト: undefined
このオプションはカバレッジ取得結果の最小しきい値を強制的に設定します。 しきい値に到達しなかった場合、Jestはテストが失敗したと判定します。 正の値で指定されたしきい値を最小限求められるカバレッジのパーセンテージとして設定します。 負のしきい値を設定することでカバーされなかった部分の最大許容量を指定します。
例えば、90という数値は最小限のカバレッジが90%であることを意味します。-10という数値は10より多い数の宣言がカバーされないことを許容しないことを意味します。
{ ... "jest": { "coverageThreshold": { "global": { "branches": 50, "functions": 50, "lines": 50, "statements": 50 } } } }
globals
[object] #
デフォルト: {}
全テスト環境で利用できるグローバル変数の配列を指定します。
例えば、下記の設定はグローバル変数 __DEV__
は全てのテスト環境において true
となります。
{ ... "jest": { "globals": { "__DEV__": true } } }
(オブジェクトや配列のような)グローバル参照値を指定して一部のコードでテスト中にその値に変更を加える場合は、その変更は異なるテストファイルで実行されるテスト間で保存されない ことに注意して下さい。
mapCoverage
[boolean] #
Jest バージョン20.0.0+で利用可能 #
デフォルト: false
ソースマップを生成する transformersが設定されている場合、Jestは レポート出力およびカバレッジのしきい値チェック時に元のソースコードからコードカバレッジをマップするのにそれらを利用しようとします。 いくつかのJavascript代替言語が他よりもより正確なソースマップを提供しうるように、ベストエフォート方式で実行されます。 これはリソース集約型にもなります。 Jestがテスト実行時の最後でカバレッジの計算に長い時間を要している場合は、このオプションをfalse
に設定してみて下さい。
インライン形式ののソースマップにもtransformerから直接与えられるソースマップファイルにも対応しています。 ソースマップURLはJestがそれらを見つけられない可能性があるため、サポートしていません。 transformerからソースマップを返すには、 process
関数で下記のようなオブジェクトで返すことができます。 map
プロパティはソースマップのオブジェクトかJSON形式の文字列のオブジェクトを設定できます。
return { code: 'the code', map: 'the source map', };
moduleFileExtensions
[array<string>] #
デフォルト: ["js", "json", "jsx", "node"]
モジュールが使用するファイル拡張子の配列を指定します。ファイル拡張子を使用しないモジュールを呼び出す場合、Jestはこれらの拡張子から形式を推測します。
TypeScriptを使用している場合はこの配列は["js", "jsx", "json", "ts", "tsx"]
である必要があります。
moduleDirectories
[array<string>] #
デフォルト: ["node_modules"]
必要なモジュールの格納場所から上方向に再帰的に探索を行うディレクトリ名の配列を指定します。 このオプションを指定することで既定値が上書きされるため、 node_modules
内でパッケージの探索を行いたい場合は他のオプションに加えて次の配列を追加して下さい: ["node_modules", "bower_components"]
moduleNameMapper
[object<string, string>] #
デフォルト: null
単一のモジュールで画像やスタイルのようなリソースをスタブさせるために利用する正規表現パターンからモジュール名へのマップを指定します。
別名にマップされているモジュールはデフォルトでは自動モック機能が有効かどうかに関わらずモックされません。
ファイルパスでrootDir
を使いたい場合は、<rootDir>
文字列トークンを設定して下さい。
加えて、正規表現によりキャプチャした文字列を数字付きの後方参照を使って代入することができます。
例:
{ "moduleNameMapper": { "^image![a-zA-Z0-9$_-]+$": "GlobalImageStub", "^[./a-zA-Z0-9$_-]+\.png$": "<rootDir>/RelativeImageStub.js", "module_name_(.*)": "<rootDir>/substituted_module_$1.js" } }
注意: モジュール名を 正規表現^$
による境界なしでモジュール名を指定するとエラーの特定が困難となることがあります。 例えば relay
という表現では relay
を名前に含む全てのモジュール名の置換を行います: relay
, react-relay
そして graphql-relay
の全てが指定したスタブに置き換わります。
modulePathIgnorePatterns
[array<string>] #
デフォルト: []
モジュールローダーから'見える'状態となる前に全てのモジュールパスに対して照合する正規表現の文字列の配列を指定します。 与えられたモジュールのパスがこの正規表現に一致した場合、テスト環境では当該モジュールはrequire()
できなくなります。
パターン文字列はフルパスに対して照合されます。 <rootDir>
文字列トークンをプロジェクトのルートディレクトリとして指定することで、異なるルートディレクトリを持ちうる異なる環境のファイルを誤って無視してしまうことを防ぐことができます。 例: [「< rootDir > ビルド/」]
。
modulePaths
[array<string>] #
デフォルト: []
NODE_PATH
環境変数を設定することの代替APIとして、modulePaths
にはモジュールの依存関係の解決を行う際の追加のロケーションの絶対パスの配列を指定します。 プロジェクトのルートディレクトリへのパスを指定するには<rootDir>
文字列トークンを使用して下さい。 例: ["<rootDir>/app/"]
。
notify
[boolean] #
デフォルト: false
テスト結果の通知機能を有効にします。
preset
[string] #
デフォルト: undefined
Jestの設定の基盤として利用されるプリセットを指定します。jest-preset.json
を出力するnpmモジュールをプリセットのトップレベルに指定する必要があります。
projects
[array<string>] #
デフォルト: undefined
projects
設定がパスやglobパターンの配列で与えられた場合、Jestは指定されたプロジェクト全てで同時にテストを実行します。 このオプションはmonorepo構成のプロジェクトや同時に複数のプロジェクトに従事している時に効果を発揮します。
{ "projects": [ "<rootDir>", "<rootDir>/examples/*" ] }
この例の設定ではJestはルートディレクトリと同時にexamples配下の各ディレクトリでテストを実行します。同じJestのインスタンスで無制限に複数のプロジェクトのテストを実行できます。
clearMocks
[boolean] #
デフォルト: false
各テストごとに自動的にモックコールとモックインスタンスをクリアします。 各テスト間でjest.clearAllMocks()
を呼び出すのと同じです。 このオプションは与えられたモックの実装を削除することはしません。
reporters
[array<modulename | [modulename, options]>] #
デフォルト: undefined
Jest バージョン20.0.0+で利用可能 #
Jestにカスタムレポーターを追加するにはこの設定オプションを指定します。 カスタムレポーターは、 onRunStart
、onTestStart
、onTestResult
、 onRunComplete
メソッドを実装したクラスであり、各イベントが発生した場合にこれらのメソッドが呼ばれます。
カスタムレポーターが指定された場合、デフォルトのJestのレポーターは上書きされます。デフォルトのレポーターも併せて使用する場合は、モジュール名にdefault
を指定できます。
以下の設定はデフォルトのレポーターを上書きします。
{ "reporters": [ "<rootDir>/my-custom-reporter.js" ] }
以下の設定はJestが提供するデフォルトのレポーターに加えてカスタムレポーターを使用します。
{ "reporters": [ "default", "<rootDir>/my-custom-reporter.js" ] }
加えて、カスタムレポーターは第2引数にoptions
オプションを渡すことで設定を行うことができます。
{ "reporters": [ "default", ["<rootDir>/my-custom-reporter.js", {"banana": "yes", "pineapple": "no"}] ] }
カスタムレポーターのモジュールはコンストラクタ引数にGlobalConfig
とレポーターオプションをとるクラスとして定義されなければなりません。
レポーターの例:
// my-custom-reporter.js class MyCustomReporter { constructor(globalConfig, options) { this._globalConfig = globalConfig; this._options = options; } onRunComplete(contexts, results) { console.log('Custom reporter output:'); console.log('GlobalConfig: ', this._globalConfig); console.log('Options: ', this._options); } } module.exports = MyCustomReporter;
カスタムレポーターはgetLastError()
メソッドでエラーを返すことでJestを0でない戻り値で終了させることができます。
class MyCustomReporter { // ... getLastError() { if (this._shouldFail) { return new Error('my-custom-reporter.js reported an error'); } } }
全てのメソッドと引数の型を確認するには、types/TestRunner.js内の Reporter
typeを参照して下さい。
resetMocks
[boolean] #
デフォルト: false
各テストごとに自動的にモックの状態をリセットします。 各テストの間で jest.resetAllMocks()
を実行するのと同じです。 このオプションはあらゆるモックに見せかけの実装を削除させますが、モックを最初の時点の実装に戻すものではありません。
resetModules
[boolean] #
デフォルト: false
有効化した場合、個々のテストを実行する前に各テストファイルのモジュールレジストリがリセットされます。 このオプションはテスト間のローカルのモジュールの状態が競合しないように各テストで使うモジュールを切り離したい場合に便利です。 プログラム内で jest.resetModules()
を利用することでも同様のことができます。
resolver
[string] #
デフォルト: undefined
Jest バージョン20.0.0+で利用可能 #
カスタムのリゾルバを利用する場合はこのオプションを指定します。 このリゾルバは、第1引数に依存関係の解決に用いるパスの文字列を、第2引数に以下の構造のオブジェクトを受け取る関数をエクスポートするnodeモジュールでなければなりません:
{ "basedir": string, "browser": bool, "extensions": [string], "moduleDirectory": [string], "paths": [string] }
関数は解決されるべきモジュールへのパスかモジュールが見つからなければエラーを返します。
rootDir
[string] #
デフォルト: package.json
を含むルートディレクトリまたはpackage.json
が見つからなければ<a href=https://ja.wikipedia.org/wiki/Pwd">`pwd`</a>
Jestがテストとモジュールをその範囲内で探索するルートディレクトリを指定します。 package.json
にJestの設定を記述してルートディレクトリをリポジトリのルートをしたい場合、この設定のパラメータ値はデフォルトのpackage.json
が格納されているディレクトリとなります。
多くの場合、リポジトリのどこにソースコードを格納するかによって、 'src'
または 'lib'
に設定されるでしょう。
パスを指定する他のオプションで'<rootDir>'
を文字列トークンとして利用する場合は、このオプションの値を参照することに注意して下さい。 このため、例えばsetupFiles
オプションのエントリポイントをルートディレクトリ直下の env-setup.js
ファイルとしたい場合は、このオプションの値は ["<rootDir>/env-setup.js"]
となるでしょう。
roots
[array<string>] #
デフォルト: ["<rootDir>"]
Jestがその中でファイルを探索するのに使用するディレクトリのパスを使用します。
Jestに単一のサブディレクトリのみを探索させ(リポジトリ内にsrc/
ディレクトリがあるなど)、リポジトリの残りの場所にはアクセスさせたくない場合に有用です。
注意: rootDir
が他の設定オプションで再利用されるトークンとして最も頻繁に使われる一方で、roots
はJestの内部でテストファイルやソースコードファイルを見つけるのに使われます。 デフォルトでは、 roots
は <rootDir>
のみをエントリとして持ちますが、1つのプロジェクトで複数のrootsを設定したい場合は、例えば次のように設定します: roots: ["<rootDir>/src/", "<rootDir>/tests/"]
。
setupFiles
[array] #
デフォルト: []
各テスト前にテスト環境の構成やセットアップを行うためのモジュールへのパスを指定します。 各テストは個々の環境でテストを実行するため、これらのスクリプトはテスト環境にてテストコードそれ自身の実行前に直ちに実行されます。
このスクリプトをsetupTestFrameworkScriptFile
の前に実行することは無意味です。
setupTestFrameworkScriptFile
[string] #
デフォルト: undefined
各テスト前にテストフレームワークの構成やセットアップを行うためのモジュールへのパスを指定します。 setupFiles
で指定したスクリプトはテストフレームワークを環境にインストールする前に実行されるため、このオプションで指定したスクリプトファイルは環境にテストフレームワークがインストールされた直後のタイミングでコードを実行することができます。
例えばJestはjasmineのAPIにモンキーパッチを当てて動作するjasmine
のプラグインをいくつか提供しています。 もしより多くのjasmineプラグインを混在して(または例えばプロジェクト単位で利用するカスタムマッチャが必要な場合) 追加した場合は、このもモジュールで実現できます。
snapshotSerializers
[array<string>] #
デフォルト: []
Jestがスナップショットテストに利用するスナップショットのシリアライザーのモジュールのパスのリストを指定します。
Jestは組み込みのJavaScriptの型、HTML要素(Jest バージョン20.0.0+)、ImmutableJS (Jest バージョン20.0.0+) そしてReact要素に対応したデフォルトのシリアライザーを備えています。 詳細については snapshot test tutorial を参照してください。
シリアライザー モジュールの例:
// my-serializer-module module.exports = { print(val, serialize, indent) { return 'Pretty foo: ' + serialize(val.foo); }, test(val) { return val && val.hasOwnProperty('foo'); }, };
serialize
は既存のプラグインを利用して値をシリアライズする関数です。
my-serializer-module
をシリアライザーとして使用する場合は、下記の様な設定になります:
{ ... "jest": { "snapshotSerializers": ["my-serializer-module"] } }
最終的にテストは下記のようになります:
test(() => { const bar = { foo: { x: 1, y: 2, }, }; expect(bar).toMatchSnapshot(); });
レンダリングされたスナップショット:
Pretty foo: Object { "x": 1, "y": 2, }
シリアライザーの依存関係を暗黙的から明示的なものにするには、Jestの設定に snapshotSerializers
へのパスを追加する代わりに、個々のテストファイルにモジュールをexpect.addSnapshotSerializer
を呼び出して追加して下さい。
testEnvironment
[string] #
デフォルト: "jsdom"
テスト実行時に使用されるテスト環境を指定します。 Jestのデフォルトの環境は jsdomを経由したブラウザライクな環境です。 Node環境によるサービスを構築する場合は、 node
オプションを指定することでnodeライクな環境を代わりに使うことができます。
一部のテストで他の環境が必要となる場合、コメント部に@jest-environment
を追加することができます。
Jest バージョン20.0.0+で利用可能 #
/** * @jest-environment jsdom */ test('use jsdom in this test file', () => { const element = document.createElement('div'); expect(element).not.toBeNull(); });
テスト環境のセットアップに使用する独自のモジュールを作成できます。 モジュールは runScript
および dispose
メソッドを実装したクラスをエクスポートしなければなりません。 例としては nodeまたは jsdomの環境設定を参照してください。
testMatch
[array<string>] #
jest バージョン19.0.0+で利用可能 #
(デフォルト: [ '**/__tests__/**/*.js?(x)', '**/?(*.)(spec|test).js?(x)' ]
)
テストファイルを検出するのにJestが使用するglobパターンを指定します。 デフォルトでは __tests__
ディレクトリ配下の .js
および .jsx
ファイルを探し、.test
または .spec
のサフィックスが付いた全てのファイルについても同様に探します(例えば Component.test.js
または Component.spec.js
など)。 test.js
または spec.js
といったファイルについても同様に見つけます。
指定できるパターンの詳細については、 micromatch パッケージを参照して下さい。
testRegex
[string]についても参照して下さい、ただし両方のオプションを同時には指定できないことに注意してください。
testPathIgnorePatterns
[array<string>] #
デフォルト: ["/node_modules/"]
テスト実行前に全てのファイルのパスに対して照合する正規表現パターンの配列を指定します。テストパスがパターンのいずれかにマッチした場合、そのテストはスキップされます。
パターン文字列はフルパスに対して照合されます。 <rootDir>
文字列トークンをプロジェクトのルートディレクトリとして指定することで、異なるルートディレクトリを持ちうる異なる環境のファイルを誤って無視してしまうことを防ぐことができます。 例: ["<rootDir>/build/", "<rootDir>/node_modules/"]
。
testRegex
[string] #
デフォルト: (/__tests__/.*|(\\.|/)(test|spec))\\.jsx?$
テストファイルを検出するのにJestが使用するパターンを指定します。 デフォルトでは __tests__
ディレクトリ配下の .js
および .jsx
ファイルを探し、.test
または .spec
のサフィックスが付いた全てのファイルについても同様に探します(例えば Component.test.js
または Component.spec.js
など)。 test.js
または spec.js
といったファイルについても同様に見つけます。 testMatch
[array<string>]についても参照して下さい、ただし両方のオプションを同時には指定できないことに注意してください。
以下はデフォルトの正規表現を可視化したものです。
├── __tests__ │ └── component.spec.js # test │ └── anything # test ├── package.json # not test ├── foo.test.js # test ├── bar.spec.jsx # test └── component.js # not test
testResultsProcessor
[string] #
デフォルト: undefined
このオプションでカスタムのテスト結果のプロセッサを設定することができます。このプロセッサは、第1引数として次の構造を持つオブジェクトをとる関数をエクスポートするnodeモジュールでなければなりません。
{ "success": bool, "startTime": epoch, "numTotalTestSuites": number, "numPassedTestSuites": number, "numFailedTestSuites": number, "numRuntimeErrorTestSuites": number, "numTotalTests": number, "numPassedTests": number, "numFailedTests": number, "numPendingTests": number, "testResults": [{ "numFailingTests": number, "numPassingTests": number, "numPendingTests": number, "testResults": [{ "title": string (message in it block), "status": "failed" | "pending" | "passed", "ancestorTitles": [string (message in describe blocks)], "failureMessages": [string], "numPassingAsserts": number }, ... ], "perfStats": { "start": epoch, "end": epoch }, "testFilePath": absolute path to test file, "coverage": {} }, ... ] }
testRunner
[string] #
デフォルト: jasmine2
このオプションでカスタムのテストランナーを指定できます。既定値は jasmine2 です。カスタムのテストランナーは、テストランナーの実装へのパスを指定することによって提供されます。
テストランナーのモジュールは、下記のシグネチャを持つ関数をエクスポートしなければなりません:
function testRunner( config: Config, environment: Environment, runtime: Runtime, testPath: string, ): Promise<TestResult>
このような関数の例は、デフォルトの jasmine2 test runner packageで確認できます。
testURL
[string] #
デフォルト: about:blank
このオプションは、jsdom 環境の URL を指定します。location.href
などのプロパティに反映されます。
timers
[string] #
デフォルト: real
この値を fake
に設定することで、setTimeout
などの関数に対して偽のタイマーを使用することができます。 偽のタイマーはテストでは待ちたくないような長いタイムアウト時間を設定するようなコードがある時に役立ちます。
transform
[object<string, string>] #
デフォルト: undefined
正規表現からtransformerへのパスへのマップを指定します。 transformerはソースファイルを変換する同期処理を行う関数を提供するモジュールです。 例えばまだnodeではサポートされていない新しい言語の機能をモジュールやテストで使用したい時、将来のJavaScriptのバージョンを現在のものに変換する多くのコンパイラの中の1つをプラグインとして利用するでしょう。 例: examples/typescript の例や webpack tutorial を参照してください。
このようなコンパイラの例には babel、 typescript、やasync-to-genが含まれます。
注意: transformerはファイルに変更が無い限りファイルごとに一度しか実行されません。 transformerの開発時にはJestを --no-cache
オプションで実行するか頻繁に Jestのキャッシュを削除すると便利です。
注意: babel-jest
transformerを使用しながら追加でコードのプリプロセッサを使用したい場合は、何らかの方法で "transform" フィールドが上書きされるとbabel-jest
は自動的には読み込まれなってしまうことに注意して下さい。 JavaScriptコードのコンパイルにbabel-jest
を使用したい場合は明示的に定義されなければなりません。 babel-jest pluginを参照して下さい。
transformIgnorePatterns
[array<string>] #
デフォルト: ["/node_modules/"]
変換前に全てのソースコードファイルのパスに対して照合する正規表現パターンの配列を指定します。パスがパターンのいずれかにマッチした場合、そのファイルは変換されません。
パターン文字列はフルパスに対して照合されます。 <rootDir>
文字列トークンをプロジェクトのルートディレクトリとして指定することで、異なるルートディレクトリを持ちうる異なる環境のファイルを誤って無視してしまうことを防ぐことができます。 例:["<rootDir>/bower_components/", "<rootDir>/node_modules/"]
。
unmockedModulePathPatterns
[array<string>] #
デフォルト: []
モジュールローダーが自動的にモック返す前に全てのモジュールに対して照合する正規表現パターンの配列を指定します。 モジュールのパスがリスト中のいずれかのパターンにマッチした場合、モジュールローダーによる自動的なモック化は行われません。
このオプションは(underscore/lo-dashなどのような) ほぼ常にプライベートな処理の実装には、ほぼいつも利用される一般的に'ユーティリティ' モジュールに関して役に立ちます。 出来るだけこのリストを小さく保ち、個々のテスト内でjest.mock()
/jest.unmock()
を常に明示的に使用することが大抵の場合でベストプラクティスとなります。 明示的にテスト前にセットアップを行うことで、テストを読む他の人がそのテストがなぜその環境で実行されるのかを理解するのがとても簡単にになります。
個々のテストにおいて、テストファイルの先頭でjest.mock()
を明示的に呼び出す事でこの設定を上書きすることが可能です。
verbose
[boolean] #
デフォルト: false
テスト実行中に個々のテストのレポートを出力するかどうかを指定します。すべてのエラーはテスト完了後に最後尾にも出力されます。