【发布时间】:2019-03-01 17:25:56
【问题描述】:
我使用 gitlab-ci 运行我的测试套件,在一个测试中我想模拟一个 更改系统日期(例如,后天)以查看是否 一切都按预期工作,例如:
- redis 键被删除 (TTL)
- 自更改日期以来,某些文件使用新的“运行编号”写入
- 日期时间计算正常
- ...
如何模拟系统日期/时间的更改以进行单元测试?
编辑:由于我的代码库是 Python,我找到了freezegun 和python-libfatketime;前者可能可以为我的 Python 代码解决问题,而后者更强大,因为它可以拦截系统调用,所以理论上如果我在应用补丁后启动 redis,我可以使用它来测试 redis TTL。
【问题讨论】:
-
我相信 “有这个工具吗?” 进入了离题的领域。我认为标题中的问题更适合这篇文章。
标签: linux unit-testing testing automated-tests