When testing Laravel applications, we frequently need to "silence" events, so as not to trigger additional side-effects. Laravel's Event::fake
method is useful, but muting a specific model observer is still problematic.
Unobserve takes care of that, making it easy to mute and unmute an observer at will.
Unobserve requires PHP 7.2, and has been tested against Laravel 6. It should work just fine with any recent version from the 5.x branch, but it hasn't been tested in that environment.
Install Unobserve using Composer:
composer require monooso/unobserve
First, add the CanMute
trait to your observer class.
<?php
namespace App\Observers;
use Monooso\Unobserve\CanMute;
class UserObserver
{
use CanMute;
}
You can now mute and unmute your observer as needed:
UserObserver::mute();
UserObserver::unmute();
Unobserve is open source software, released under the MIT license.