diff --git a/src/Codeception/Module/Symfony.php b/src/Codeception/Module/Symfony.php index 689ded03..c7305bb0 100644 --- a/src/Codeception/Module/Symfony.php +++ b/src/Codeception/Module/Symfony.php @@ -21,6 +21,7 @@ use Codeception\Module\Symfony\SecurityAssertionsTrait; use Codeception\Module\Symfony\ServicesAssertionsTrait; use Codeception\Module\Symfony\SessionAssertionsTrait; +use Codeception\Module\Symfony\TimeAssertionsTrait; use Codeception\Module\Symfony\TwigAssertionsTrait; use Codeception\TestInterface; use Exception; @@ -138,6 +139,7 @@ class Symfony extends Framework implements DoctrineProvider, PartedModule use SecurityAssertionsTrait; use ServicesAssertionsTrait; use SessionAssertionsTrait; + use TimeAssertionsTrait; use TwigAssertionsTrait; /** diff --git a/src/Codeception/Module/Symfony/TimeAssertionsTrait.php b/src/Codeception/Module/Symfony/TimeAssertionsTrait.php new file mode 100644 index 00000000..ad3c1862 --- /dev/null +++ b/src/Codeception/Module/Symfony/TimeAssertionsTrait.php @@ -0,0 +1,50 @@ +grabTimeCollector(__FUNCTION__); + + $actualMilliseconds = round($timeCollector->getDuration(), 2); + + $this->assertLessThan( + $expectedMilliseconds, + $actualMilliseconds, + sprintf( + 'The request was expected to last less than %d ms, but it actually lasted %d ms.', + $expectedMilliseconds, + $actualMilliseconds + ) + ); + } + + protected function grabTimeCollector(string $function): TimeDataCollector + { + return $this->grabCollector('time', $function); + } +}