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);
是否可以使用 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);