tijmen-wierenga / laravel-mail-tester
An extension to Laravel's TestCase which allows you to run unit tests on emails
v0.1.2
2016-07-28 10:57 UTC
This package is auto-updated.
Last update: 2024-11-16 20:03:25 UTC
README
An extension to Laravel's TestCase which allows you to run unit tests on emails.
Installation
composer require tijmen-wierenga/laravel-mail-tester
Next, add the trait to the TestCase
class located at tests/TestCase
:
use TijmenWierenga\LaravelMailTester\TestsEmail; class TestCase extends Laravel\Lumen\Testing\TestCase { use TestsEmail; ... }
How it works
LaravelMailTester adds an event listener as a plugin when in a testing environment. It tracks when an email is sent, and stores all data in the test case. You can then perform assertions against it.
Usage
class AuthenticationTest extends TestCase { /** * @test */ public function it_sends_an_email() { // Send an email Mail::raw('Wow, awesome email testing!', function($mail) { $mail->to('tijmen@floown.com'); $mail->from('no-reply@floown.com'); $mail->subject('Read this awesome email'); } $this->assertEmailWasSent() ->assertEmailWasSentTo('tijmen@floown.com') ->assertEmailWasSentFrom('no-reply@floown.com') ->assertEmailBodyContains('awesome email testing') } }
More assertions to come.
License
The MIT License (MIT).