deegitalbe/laravel-mail-assertions

PHPUnit 邮件断言,用于测试 Laravel 中的电子邮件。

2.0.0 2022-06-08 18:03 UTC

README

注意:这是基于名为 "使用自定义断言测试电子邮件" 的视频,该视频由 Jeffrey WayLaracasts.com 制作。如果您没有该网站的账户,那么您应该创建一个。这是一个非常棒的资源。我们只是将那个例子改编成了一个易于安装的软件包。谢谢 Jeffrey!

Latest Stable Version Latest Unstable Version Total Downloads License

PHPUnit 邮件断言,用于测试 Laravel 中的电子邮件。

构建状态

安装

将包安装到您的开发依赖项中

$ composer require spinen/laravel-mail-assertions --dev

配置

为了让包能够对您的电子邮件进行断言,它必须能够“读取”这些消息。它通过解析 Laravel 日志来实现这一点,因此您的邮件驱动程序必须是“日志”,这样这个包才能正常工作。

使用方法

您需要将断言与 Spinen\MailAssertions\MailTracking 特性混合使用。您将获得以下断言...

  • seeEmailBcc
  • seeEmailCc
  • seeEmailContains
  • seeEmailContentTypeEquals
  • seeEmailCountEquals
  • seeEmailDoesNotContain
  • seeEmailEquals
  • seeEmailFrom
  • seeEmailPriorityEquals
  • seeEmailReplyTo
  • seeEmailSubjectContains
  • seeEmailSubjectDoesNotContain
  • seeEmailSubjectEquals
  • seeEmailTo
  • seeEmailWasNotSent
  • seeEmailWasSent

注意:如果发送了多于 1 封电子邮件,那么断言将查看最后一封电子邮件。

示例

<?php
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Spinen\MailAssertions\MailTracking;

class ExampleTest extends TestCase
{
    use MailTracking;

    /**
     * A basic functional test example.
     *
     * @return void
     */
    public function testBasicExample()
    {
        $this->visit('/route-that-sends-an-email')
             ->seeEmailWasSent()
             ->seeEmailSubject('Hello World')
             ->seeEmailTo('foo@bar.com')
             ->seeEmailEquals('Click here to buy this jewelry.')
             ->seeEmailContains('Click here');
    }
}