为PHPUnit测试重写时间()?

为PHPUnit测试重写时间()?,phpunit,Phpunit,我有一个测试,我必须比较当前的时间来确定另一个时间。除了使用模拟(即返回我指定的时间的另一种方法)之外,还有另一种方法可以将系统时间临时更改为另一个测试的指定时间。我想要一种让时间返回另一个值的简单方法。如果您安装了runkit扩展,您可以通过使用runkit函数重新定义函数来归档它 从PHP文档:为了覆盖内部函数,必须在PHP.ini中启用runkit.internal_override设置 然后可以指定一个代码字符串作为函数体 将时间函数包装到一个对象中,您可以将自己的逻辑注入其中。不幸的是

我有一个测试,我必须比较当前的时间来确定另一个时间。除了使用模拟(即返回我指定的时间的另一种方法)之外,还有另一种方法可以将系统时间临时更改为另一个测试的指定时间。我想要一种让时间返回另一个值的简单方法。

如果您安装了runkit扩展,您可以通过使用runkit函数重新定义函数来归档它

从PHP文档:为了覆盖内部函数,必须在PHP.ini中启用runkit.internal_override设置

然后可以指定一个代码字符串作为函数体


将时间函数包装到一个对象中,您可以将自己的逻辑注入其中。不幸的是,很多本机php函数都会遇到这个问题。相关的: