Jasmine と Karma を使用して AngularJS アプリケーションの単体テストを行っています。私が現在取り組んでいる単体テストは、文字列を日付に解析して timezoneJS オブジェクトを返す日付サービスです。karma.config ファイルに date.js ライブラリを含め、SPA のメイン アプリケーション ページで zoneFileBasePath も定義しました。angular アプリケーション ファイルはすべて、私の karma.config ファイルにも含まれています。
私が得ていた最初のエラーはこれでした:
ゾーン ファイル ディレクトリへのベース パスを定義してください -- timezoneJS.timezone.zoneFileBasePath。
そのため、単体テストに以下を含めました。
timezoneJS.timezone.zoneFileBasePath = 'app/tz'
timezoneJS.timezone.init({async:false})
すでに定義されているため、なぜこれが必要なのかわかりませんでしたが、それでも機能しました。
私は今、このエラーが発生しています
エラー: タイムゾーン "America/Chicago" が正しくないか、タイムゾーン レジストリに読み込まれていません。
この問題に関する投稿をいくつか見つけましたが、他の誰かにとってはうまくいくように思われる推奨事項の 1 つは、非同期をオフにすることでした。これを実行しましたが、まだ機能していません。
タイムゾーン ディレクトリの内容:
ご覧のとおり、これは、zoneFileBasePath 宣言で指定した app ディレクトリ内にあります。私のテストは、仕様やモックなどにさらに分割されたテスト フォルダー内のアプリと同じ平面にあります。
この日付サービスをテストできるようにする必要がありますが、コードをどのように構成しようとしても、この問題は解決しません。誰かが私を助けることができれば、私はそれを大いに感謝します. ありがとう。