Skip to content

[PHPUnit Bridge] Time sensitive tests #9620

Closed
@sylfabre

Description

@sylfabre

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
    }

}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions