我们的NodeJS应用程序之一根据当前日期和时间执行各种业务操作。
使用JS原生Date和moment库进行日期相关操作(比较、使用日期范围的MongoDB查询等)
在调试任何问题期间,我们希望使用过去的日期和时间运行应用程序模拟,以重新生成确切的场景。
直接的答案应该是更改系统日期和时间(OS),并运行应用程序,但当系统时间错误时,连接到各种第三方服务(如MongoDB,Salesforce等)会遇到挑战。
系统上运行的其他应用程序也会受到此错误日期和时间的影响。
为了克服这一点,我正在寻找某种时间模拟库,它可以在启动时为我的NodeJS应用程序初始化过去的时钟,而无需更改系统日期和时间。
请给我提些建议.
尝试将操作系统日期和时间更改为过去和运行应用程序。应用程序运行良好,但集成中断。所以我觉得这不是一个好主意。
1条答案
按热度按时间j7dteeu81#
您可以研究一下单元测试工具来实现这一点。
例如,您可以查看@sinonjs/fake-timer库:https://github.com/sinonjs/fake-timers
您可以这样使用它:
或者开个玩笑:https://jestjs.io/(jest使用@sinonjs/伪定时器库)
你可以这样做:
然后将从模拟中检索每个新的Date示例。