ClockMock ist ein Teil der Phunit-Brücke, die mit PHPUnit 8 gut funktioniert hat. Jetzt ist es so Das Jahr 2024 und die aktuelle Version von phpunit ist 11.
Diese Github-Seite https://github.com/symfony/symfony-docs/issues/20344 schlägt diese Funktion vor sollte jetzt auch mit phpunit Version 10 oder höher funktionieren, vorausgesetzt Sie verwenden phpunit-bridge 7.2
Hier ist meine Projektkonfiguration:
- < li>symfony: 6.4
- php: 8.2
- phpunit/phpunit: 10.5.41
- symfony/ phpunit-bridge: 7.2.0
Code: Select all
In meinem Test lautet der Code wie folgt:
< pre class="lang-php Prettyprint-override">
Code: Select all
class CompanyNameHelperTest extends TestCase
{
public function testGetCompanyNameByIdPast(): void
{
ClockMock::register(CompanyNameHelper::class);
ClockMock::withClockMock(true);
ClockMock::withClockMock(strtotime('2018-11-05 01:00:00'));
$myDate = (new DateTimeImmutable(date('Y-m-d H:m:s')));
$companyId = 1;
$this->assertEquals(
'ACME KG, Hamburg',
CompanyNameHelper::getCompanyNameById($companyId, $myDate)
);
ClockMock::withClockMock(false);
}
Na und Ist die richtige Art und Weise, ClockMock in PHPUnit Version 10 und höher zu verwenden/aktivieren?