This package allows you to easily test the sleep() and usleep() functions without having to "wait".
You can install the package via composer:
composer require driade/sleepery
Instead of using sleep() in your code you should use
Driade\Sleepery::dream(1);
and, instead of using usleep() in your code you should use
Driade\Sleepery::nap(1000);
When it comes to test your code, you can use the "fake" function to make the calls to dream() and nap() recorded, so you can later test them.
In your tests
use Driade\Sleepery;
Sleepery::fake();
(new PerformAction)->handle(); // execute your code
Sleepery::wakeup();
//
Sleepery::assertDreamt(1);
Sleepery::assertNapped(1000);
You may also use the following functions
Sleepery::assertNeverDreamt(); // no call to sleep() was made
Sleepery::assertNeverNapped(); // no call to usleep() was made
Sleepery::getDreams(); // returns all the dream() calls while dreaming
Sleepery::getNaps(); // returns all the nap() calls while dreaming
Sleepery::wakeup(); // stop dreaming
composer test
Please feel free to open an issue or pull request if you think something can be improved
The MIT License (MIT). Please see License File for more information.