Closed
Description
Using the @group time-sensitive
annotation makes the magic happen on time()
, sleep()
functions.
But not on new DateTime('now')
.
This should be explicitly written in the doc if this not a bug.
<?php
namespace App\Tests;
use PHPUnit\Framework\TestCase;
Class TestTimeSensitive extends TestCase
{
/**
* @group time-sensitive
*/
public function test_with_group()
{
var_dump(time()); // 1524062766
sleep(3);
var_dump(time()); // 1524062769
$datetime = new \DateTime('now');
var_dump($datetime->getTimestamp()); // 1524062766
$this->assertSame(time(), $datetime->getTimestamp()); // Failure
$datetime = new \DateTime('@' . time());
var_dump($datetime->getTimestamp()); // 1524062769
$this->assertSame(time(), $datetime->getTimestamp()); // Success
}
public function test_without_group()
{
var_dump(time()); // 1524062766
sleep(3);
var_dump(time()); // 1524062769
$datetime = new \DateTime('now');
var_dump($datetime->getTimestamp()); // 1524062769
$this->assertSame(time(), $datetime->getTimestamp()); // Success
$datetime = new \DateTime('@' . time());
var_dump($datetime->getTimestamp()); // 1524062769
$this->assertSame(time(), $datetime->getTimestamp()); // Success
}
}