AVAからJestに移行しようとしています。 AVAでは、jsdom
環境を設定するava.setup
を設定できます。たとえば、DOM構造を作成し、必要なポリフィル(localStorage)を実行します。
Jestでそれを行うにはどうすればよいですか?現在、私は各テストスイートでbeforeEach
を使用していますが、これは最適なソリューションとは思えません。
前もって感謝します!
すばらしい質問です。
Jestは実際にはjsdomと環境がすでに構成された状態で出荷されます(testEnvironment
setting でオーバーライドできます)。
ただし、環境のさまざまな側面を設定する必要がある場合は、setupTestFrameworkScriptFile
setting を使用して、すべてのテストが実行される前に実行されるファイルを指定できます。
たとえば、すべてのテストのウィンドウでwindow.yourVar
を使用できるようにする必要がある場合は、これをpackage.json
に追加します。
"jest": {
"setupTestFrameworkScriptFile": "tests/setup.js"
}
そしてtests/setup.jsで:
Object.defineProperty(window, 'yourVar', { value: 'yourValue });