Laravel/codeception 测试:如何存根时间()

Laravel/codeception testing: how to stubbing time()

是否可以使用 Laravel mocking, stubling, (and/or Codeception\Test\Unit and/or Codeception\Stub) 对方法 z (public testZ(){...} ) 进行测试以遵循 class :

<?php

class X extends Y
{
    public function z(string $c = 'c') : array
    {
        return [$c, time()];
    }
}

所以,我需要 time() 到 return 假值。 Uopz 和 mimus 是排除选项(因为它可能迟早会被放弃)。

是否有任何 Laravel/php 技巧可以对 returns time() 作为 returned 值的一部分的代码进行可靠测试?

如果将其转换为 Carbon 日期时间,则有可能。

return [$c, now()->timestamp];

现在您可以在测试中设置您的假日期,它会 return 在代码中使用时给定日期

Carbon::setTestNow(Carbon::create(2021, 10, 19, 9, 30);