首页 > 解决方案 > 如何模拟系统日期/时间的更改以进行测试?

问题描述

我使用 gitlab-ci 运行我的测试套件,在一个测试中,我想模拟系统日期的更改(例如,转到后一天),以查看一切是否按预期工作,例如:

如何为单元测试目的模拟系统日期/时间的更改?


编辑:由于我的代码库是 Python,我发现freezegunpython-libfatketime;前者可能可以为我的 Python 代码解决问题,而后者更强大,因为它可以拦截系统调用,所以理论上如果我在应用补丁后启动 redis,我可以使用它来测试 redis TTL。

标签: linuxunit-testingtestingautomated-tests

解决方案


您可以随时覆盖gettimeofdayclock_gettime返回。但是,这不会影响具有超时的 pthread 等待函数。


推荐阅读