Golang 有 libfaketime 替代品吗?

问题描述 投票:0回答:3

我想自动化一些测试,我必须操纵系统时间来检查用 golang 编写的程序的身份验证行为。根据 this post,libfaketime 不适用于 golang。还有另一种方法可以实现我想要用 libfaketime 做的事情吗?

这是来自 github 的 libfaketime 功能的描述。

libfaketime 拦截程序用来检索的各种系统调用 当前日期和时间。然后它报告修改(伪造)的日期和时间(如 由您(用户)指定给这些程序。这意味着您可以修改 程序看到的系统时间,而无需更改系统范围内的时间。

testing go operating-system
3个回答
0
投票

不,没有。

您需要使用类似

clockwork
的东西(请参阅 this 了解更多)并在代码中显式传递“时间”实现。


从 2021 年 3 月 1 日起更新,提供更新的选项列表:


0
投票

我已经回答了类似的问题here。看看这个 https://github.com/harkaitz/go-faketime/ .


-1
投票

有一个 this 存储库(tkuchiki/faketime)声称能够伪造

time.Now()
功能。我不知道它的工作范围有多广,也没有测试过。但听起来这可能可以解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.