編集

Jest 30 リリース

Jest 30 がリリース。大幅なパフォーマンス向上とメモリ使用量削減を実現。ある TypeScript アプリケーションでサーバーテストが 37%高速化(1350 秒 →850 秒)、メモリ使用量が 77%削減(7.8GB→1.8GB)を記録。

Node.js 14、16、19、21 のサポートを終了し、TypeScript 最低要件を 5.4 に引き上げ。jest-environment-jsdomを jsdom 21 から 26 にアップグレード。.mts.ctsファイルをデフォルトサポート。

新機能としてexpect.arrayOf非対称マッチャー、JavaScript のusingキーワードサポート、jest.advanceTimersToNextFrame()による requestAnimationFrame テスト支援、設定可能なテストリトライ機能を追加。

javascript
// 配列要素の型チェック
expect(someArray).toEqual(expect.arrayOf(expect.any(Number)));

// リソース管理構文
test('logs a warning', () => {
  using spy = jest.spyOn(console, 'warn');
  doSomeThingWarnWorthy();
  expect(spy).toHaveBeenCalled();
});

Globals cleanup 機能により、テストファイル間でのメモリリークを防止。globalsCleanup: 'on'設定でメモリ使用量とパフォーマンスの大幅改善が可能。

#参考文献

編集