2017-08-19 3 views
1

J'ai déjà terminé le code pour envoyer le courrier par file d'attente, et ça marche bien, et je veux écrire un test pour cela (je veux juste tester le courrier qu'il devrait normalement envoyer sans manquer par la file d'attente, et à la bonne personne), mais comment?Comment écrire un test unitaire avec laravel queue mail?

Mail::to($user->email)->queue(new Welcome($user)); 
+0

Puisque vous utilisez déjà vous Façades peut utiliser 'Mocking' de quelle documentation peut être trouvé [ici] (https://laravel.com/docs/5.4/mocking). – milo526

Répondre

1

Vous feriez quelque chose comme ça (selon votre configuration):

<?php 

namespace Tests\Feature; 

use App\User; 
use App\Mail\Welcome; 
use Illuminate\Support\Facades\Mail; 

class SendInvitationEmailTest extends TestCase 
{ 
    /** @test */ 
    function mails_get_queued() 
    { 
     Mail::fake(); 
     $user = factory(User::class)->create(); 

     $this->post('/route/to/send/the/welcome/mail'); 

     Mail::assertQueued(Welcome::class, 1); 
     Mail::assertQueued(Welcome::class, function ($mail) use ($user) { 
      return $mail->user->id === $user->id; 
     }); 
    } 
}