首页 > 解决方案 > Angular Unit Test - 如何模拟系统时钟时区

问题描述

如何使用 Karma/Jasmine 在 Angular 单元测试中模拟系统时钟设置为另一个时区。

我正在使用自定义日期时间选择器组件。它有一个错误,只能在不同时区使用时重现。要为修复编写适当的单元测试,我想模拟完全相同的情况。

我可以通过在 Windows 设置中手动切换系统时钟来重现该错误:

例如 在此处输入图像描述

现在我想将系统时间开关移动到单元测试中,以模拟组件在不同时区的行为。

我尝试像这样使用 jasmine.clock: jasmine.clock().mockDate(moment.tz("2020-10-09 10:00:00", "Asia/Bangkok").toDate());

但它并没有像改变系统时钟那样真正改变时区。茉莉花时钟确实改变了时间,但它保持在系统的时区(即中欧时间)中。

标签: angularjasminemomentjskarma-jasminemoment-timezone

解决方案


推荐阅读