米Facebookは、JavaScriptテスティングプラットフォームの最新版「Jest 27」を、5月25日(現地時間)にリリースした。
「Jest 27」には、新機能として失敗したスナップショットを確認・更新することで、より多くの理解を得られるインタラクティブモードが追加されたほか、テストファイルごとの初期化が、前バージョン「Jest 26」と比較して約70%高速化している。
さらに、JSDOM環境でテストを実行すると、パフォーマンスの大幅なオーバーヘッドが発生することから、デフォルトのテスト環境をjsdomからnodeに変更した。DOM環境を必要とするテストと、必要としないテストが混在するプロジェクトでは、docblocksを使用してDOMを必要とするテストを宣言した上で、デフォルトのnodeを使用することが推奨される。
なお、次期メジャーリリースでは、依存関係ツリーからjest-jasmine2とjest-environment-jsdomを削除することで、ユーザーの混乱を減らすとともに、インストールサイズの削減を予定している。
あわせて、「Jest 26」で導入された、同じAPIを介して透過的にアクセスされるFake Timersのオプトイン実装がデフォルトになった。
そのほか、同一のdoneテストコールバックが複数回呼び出せなくなり、doneの呼び出しとPromiseの返信を組み合わせることができなくなるとともに、describeブロックが何も返さなくなっている。また、testEnvironment、runner、testRunner、snapshotResolverの各構成オプションで使用されるモジュールが、コードの残り部分と同様に変換されるようになった。
長い期間、非推奨となっていた関数jest.addMatchers、jest.resetModuleRegistry、jest.runTimersToTimeは削除され、jest.addMatchersの代わりにexpect.extend、jest.resetModuleRegistryの代わりにjest.resetModules、jest.runTimersToTimeの代わりにjest.advanceTimersByTimeが使用される。
- 関連リンク
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です