Facades Faking
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Notification;
use Illuminate\Support\Facades\Queue;
// Fake events
Event::fake();
Event::assertDispatched(App\Events\PostCreated::class);
// Fake mail
Mail::fake();
Mail::assertSent(App\Mail\WelcomeMail::class);
// Fake notifications
Notification::fake();
Notification::assertSentTo($user, App\Notifications\InvoicePaid::class);
// Fake queue
Queue::fake();
Queue::assertPushed(App\Jobs\ProcessPodcast::class);
HTTP Faking
use Illuminate\Support\Facades\Http;
Http::fake([
"github.com/*" => Http::response(["login" => "octocat"], 200),
]);
Http::assertSent(function (Request $request) {
return $request->url() === "https://api.github.com/user";
});
Storage Faking
Storage::fake("s3");
$file = UploadedFile::fake()->image("photo.jpg");
$this->post("/photos", ["photo" => $file]);
Storage::disk("s3")->assertExists("photos/photo.jpg");