jtproductions / mailtrap-assertions
用于与Mailtrap邮箱一起使用的PHPUnit断言
v1.0.2
2021-01-04 14:47 UTC
Requires
- php: ^7.3
- ext-json: *
- guzzlehttp/guzzle: ^7.2
README
mailtrap断言用于对Laravel应用程序进行TDD测试,以检查邮件是否已发送到mailtrap。
安装
您可以使用以下命令安装此包
composer require --dev jtproductions/mailtrap-assertions
.env文件
您需要在.env文件中添加一些变量。首先登录到您的mailtrap.io账户。
MAILTRAP_API_KEY => 在左侧导航栏中点击API。在那里您可以看到您的API令牌,将其复制并粘贴到.env文件中
MAILTRAP_INBOX_ID => 在左侧导航栏中点击inboxes,然后点击您的邮箱名称。现在在地址栏中可以看到类似https://mailtrap.io/inboxes/123456789/messages的内容。inboxes和messages之间的数字是您的邮箱ID。在这种情况下,它是123456789。
tests/TestCase.php
在您的测试目录中打开TestCase.php,并确保您有以下代码
protected function setUpTraits() { $uses = parent::setUpTraits(); // TODO: Change the autogenerated stub if (isset($uses[RefreshMailtrap::class])) { $this->refreshMailtrap(); } if (isset($uses[MailtrapAssertions::class])) { $this->mailtrapSetup(); } }
phpunit.xml
打开您的phpunit.xml文件。将MAIL_MAILER从array更改为smtp
用法
添加特质
RefreshMailtrap特质会在每次测试前清空您的邮箱
class ExampleTest extends TestCase { use RefreshMailtrap; }
所有断言都在MailtrapAssertions特质中
class ExampleTest extends TestCase { use MailtrapAssertions; }
断言邮箱为空
检查邮箱是否为空
$this->assertMailboxEmpty();
断言邮箱有 $count 条消息
这表示邮箱中有3条消息
$this->assertMailboxCount(3);
手动清空邮箱
如果您不想使用RefreshMailtrap特质或在测试期间清空邮箱
$this->emptyMailbox();