php - 如何获取使用 `array` 邮件驱动程序发送的消息?

标签 php laravel laravel-5

从 5.7 版开始 Laravel 建议使用 array测试期间邮件驱动程序:



不幸的是,the documentation对这个驱动程序一无所知。根据 the source code ,驱动程序将所有消息存储在内存中而不实际发送它们。如何在单元测试期间获取存储的“发送”消息(以检查它们)?

最佳答案

调用 app()->make('swift.transport')->driver()->messages() .返回值是Swift_Mime_SimpleMessage的集合对象。

一个完整的 PHPUnit 测试示例:

public function testEmail()
{
    Mail::to('user@example.com')->send(new MyMail);

    $emails = app()->make('swift.transport')->driver()->messages();
    $this->assertCount(1, $emails);
    $this->assertEquals(['user@example.com'], array_keys($emails[0]->getTo()));
}

关于php - 如何获取使用 `array` 邮件驱动程序发送的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52176937/

相关文章:

php - 自定义验证错误参数

php - 尝试对表中的SUM和GROUP BY结果进行排序时出现身份不明的索引

php - Laravel 5.7 分页在更改页面时显示但不返回正确的数据

php - 使用 Laravel 从表单将文件保存到 mysql 数据库

php - 有没有类似Wamp Server的东西?

php - Yii2 Rest - 自定义操作和 OPTIONS 方法

php - 页面刷新后 Laravel 搜索功能崩溃

php - 在 Laravel 中显示输入数组的验证错误

php - 拉拉维尔 5 : Get users between a range of age from date field

php - 路由到 Laravel 5 子文件夹中的 Controller