Jest を使った JavaScript の Date クラスのモック方法

Jest を使った JavaScript の Date クラスのモック方法

岩佐 孝浩
岩佐 孝浩
2 min read
Jest

はじめに

JavaScript アプリケーションのテストでは、時間に依存する関数において課題が発生することがあります。その代表例が Date クラスです。この記事では、Jest を使用した JavaScript の Date クラスのモック方法を解説します。

Jest を使った new Date() のモック

Jest は、時間ベースのテストシナリオを効果的に処理できる fake timerssetSystemTime などのツールを提供しています。

jest
  .useFakeTimers()
  .setSystemTime(new Date('2023-01-02 12:34:56'));

このアプローチにより、テスト内での new Date() の動作を制御し、システム時間に依存せず一貫した結果を得ることができます。

なぜ Jest のフェイクタイマーを使うのか

Date のモックは、以下のような時間依存のロジックをテストする上で重要です。

  • タイマーを使用した スケジュール操作
  • アプリケーションでの タイムスタンプ検証
  • 異なる タイムゾーン過去/未来の日付 のシミュレーション

Jest のフェイクタイマーを使用することで、テスト中に時間の停止、操作、進行が可能となり、堅牢なテストシナリオに対応できる柔軟なツールとして活用できます。

まとめ

Jest を使用した Date クラスのモックは簡単で、一貫性のある予測可能なテストの実現に貢献します。fake timerssetSystemTime などのツールを活用することで、より信頼性が高く正確なテストを実現できます。

Happy Coding! 🚀

岩佐 孝浩

岩佐 孝浩

Software Developer at KAKEHASHI Inc.
AWS を活用したクラウドネイティブ・アプリケーションの要件定義・設計・開発に従事。 株式会社カケハシで、処方箋データ収集の新たな基盤の構築に携わっています。 Japan AWS Top Engineers 2020-2023