deegitalbe / laravel-mail-assertions
PHPUnit 邮件断言,用于测试 Laravel 中的电子邮件。
2.0.0
2022-06-08 18:03 UTC
Requires
- php: ^8.0
- illuminate/container: ~5.7|~6|~7|~8|~9
- illuminate/mail: ~5.7|~6|~7|~8|~9
- phpunit/phpunit: ^8.4|^9.0
- swiftmailer/swiftmailer: ~6.2
Requires (Dev)
- egulias/email-validator: ^2.1.16
- mockery/mockery: ^1.3.1
- psy/psysh: ^0.10
- symfony/thanks: ^1.1
- symfony/var-dumper: ~3.0|^4.2
README
注意:这是基于名为 "使用自定义断言测试电子邮件" 的视频,该视频由 Jeffrey Way 在 Laracasts.com 制作。如果您没有该网站的账户,那么您应该创建一个。这是一个非常棒的资源。我们只是将那个例子改编成了一个易于安装的软件包。谢谢 Jeffrey!
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'); } }