我正在使用 Jasmine 和 Karma 对 AngularJS 应用程序进行单元测试。我目前正在进行的单元测试是一个日期服务,它将字符串解析为日期并返回一个 timezoneJS 对象。我在我的 karma.config 文件中包含了 date.js 库,并且 zoneFileBasePath 也在我的 SPA 的主应用程序页面中定义。我的 karma.config 文件中也包含了所有 Angular 应用程序文件。
我得到的第一个错误是:
请为您的区域文件目录定义一个基本路径——timezoneJS.timezone.zoneFileBasePath。
所以我在我的单元测试中包含了以下内容:
timezoneJS.timezone.zoneFileBasePath = 'app/tz'
timezoneJS.timezone.init({async:false})
我不明白为什么这是必要的,因为它已经定义了,但它仍然有效。
我现在收到此错误
错误:时区“美国/芝加哥”不正确,或未加载到时区注册表中。
我发现了几篇关于这个问题的帖子,我发现一个似乎对其他人有用的建议是关闭异步。我已经这样做了,但它仍然无法正常工作。
时区目录内容:
如您所见,它位于我在 zoneFileBasePath 声明中指定的应用程序目录中。我的测试与测试文件夹中的应用程序位于同一平面上,该文件夹进一步分为规范和模拟等。
我需要能够测试这个日期服务,无论我如何尝试构建代码,这个问题都会继续存在。如果有人可以帮助我,我将不胜感激。谢谢。