php - 使用 Mail::fake 进行 Laravel 5.4 测试 - 如何访问邮件正文?

标签 php laravel-5

我正在运行 Laravel 5.4 并使用 Mail::fake() 和 Mail::assertSent() 测试 Mailables。有 hasTo($email) 和 hasCc($email) 之类的断言,但似乎没有办法访问邮件内容。我想测试电子邮件正文是否包含特定字符串。

伪代码:

Mail::assertSent(UserInvited::class, function($mail) use($token) {
    return $mail->bodyContains($token); # that method does not really exist
});

这可能吗?

最佳答案

遇到同样的情况但搜索失败 - 调试后:

Mail::assertSent(InstanceOfMailableEmail::class, function($mail) use ($needle) {

    // now your email has properties set
    $mail->build(); 

    //check the content body for a string
    return strpos($mail->viewData['content'], $needle) !== false;
});

关于php - 使用 Mail::fake 进行 Laravel 5.4 测试 - 如何访问邮件正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41988612/

相关文章:

php - 通过 PHP 保护用于动态绘制可视化效果的 csv 文件

php - 如何缓存mysql存储的函数

php - Jquery Ajax 无法与 Laravel 分页正常工作

laravel - 如何在共享的 cPanel 主机上部署 Laravel 5

laravel - 如何在 Laravel 5 中使用 ckeditor

php - Laravel 5.6 Eloquent whereDate 和 WhereRaw 错误

php - 让 CodeIgniter 默认使用 <ControllerName>_Controller 而不更改库?

laravel-5 - 如何从我的虚拟机中运行 php artisan migrate

php - jQuery AJAX 添加/编辑/删除操作可以被黑客攻击吗?

php - Laravel 子域路由不起作用