注: これは、Jeffrey Way が Laracasts.com で行った「Testing Email With Custom Assertions」というタイトルのビデオに基づいています。 そのサイトにアカウントがない場合は、アカウントを作成する必要があります。 素晴らしいリソースです。 私たちはその例を取り上げて、簡単にインストールできるパッケージにしました。 ジェフリーさん、ありがとう!
Laravel でメールをテストするための PHPUnit メール アサーション。
支店 | 状態 | カバレッジ | コードの品質 |
---|---|---|---|
開発する | |||
マスター |
開発依存関係内にパッケージをインストールします。
$コンポーザーにはspinen/laravel-mail-assertions --devが必要です
パッケージが電子メールに対してアサーションを行えるようにするには、メッセージを「読み取る」ことができる必要があります。これはLaravelログを解析することで行われるため、このパッケージが機能するにはメールドライバーが「ログ」である必要があります。
アサーションをSpinenMailAssertionsMailTracking
特性と組み合わせます。 次のアサーションが得られます...
電子メール Bcc を参照
電子メールCcを参照
電子メールの内容を参照
「EmailContentTypeEquals」を参照
「EmailCountEquals」を参照
電子メールに含まれないものを参照
「EmailEquals」を参照
「メール送信元」を参照してください
「EmailPriorityEquals」を参照
「電子メールの返信先」を参照
「EmailSubjectContains」を参照してください。
「EmailSubjectDoesNotContain」を参照してください。
「EmailSubjectEquals」を参照
「電子メール宛先」を参照してください
「メールが送信されませんでした」を参照
「送信されたメール」を参照
注: 複数の電子メールが送信された場合、アサーションは最後の電子メールを調べます。
<?phpuse IlluminateFoundationTestingWithoutMiddleware;use IlluminateFoundationTestingDatabaseMigrations;use IlluminateFoundationTestingDatabaseTransactions;use SpinenMailAssertionsMailTracking;class ExampleTest extends TestCase {use MailTracking;/** * 基本的な機能テストの例。 * * @return void */public function testBasicExample() {$this->visit('/メールを送信するルート') ->EmailWasSent() を参照 ->EmailSubject('Hello World') を参照 ->EmailTo('[email protected]') を参照 ->seeEmailEquals('このジュエリーを購入するにはここをクリックしてください。') ->EmailContains('ここをクリック') を参照してください。 } }