MailThief 是 Tighten Co 编写的一个新扩展包,用于在 Laravel 应用中模拟邮件发送,通过该扩展包我们可以在不发送邮件的情况下实现邮件发送测试,这么说可能还是有点绕,下面我们通过一个具体的实例来说明。
假设我们之前为新用户注册成功发送欢迎邮件注册过一个这样的路由:
Route::post('register', function () {
//
Mail::send('emails.welcome', [], function ($m) {
$email = request('email');
$m->to($email),
$m->subject('Welcome to my app!');
$m->from('[email protected]');
$m->bcc('[email protected]');
});
//
});
通常这个功能测试很麻烦,需要我们手动注册,如果发送失败又要重新走一遍注册流程,但有了MailThief,一切都将变得简单:
首先,我们需要通过Composer安装该扩展:
composer require tightenco/mailthief
接下来我们通过如下Artisan命令创建测试类:
php artisan make:test RegistrationTest
然后修改测试类方法如下:
use MailThiefFacadesMailThief;
class RegistrationTest extends TestCase{
public function testNewUserRegistered()
{
// 阻止和拦截向外发送邮件, 这一步很重要!
MailThief::hijack();
$this->post('register', [
'name' => 'John Doe',
'email' => '[email protected]',
'password' => 'secret',
]);
// 检查邮件是否已发送到指定邮箱
$this->assertTrue(MailThief::hasMessageFor('[email protected]'));
// 也可以包含抄送邮箱
$this->assertTrue(MailThief::hasMessageFor('[email protected]'));
// 确保邮件主题正确
$this->assertEquals('欢迎注册Laravel学院!', MailThief::lastMessage()->subject);
// 确保这封邮件来自正确的发送地址
// (`from` 可以是个列表,所以我们以集合形式返回)
$this->assertEquals('[email protected]', MailThief::lastMessage()->from->first());
}
}
然后在命令行运行 phpunit 命令,即可测试用户注册发送邮件功能。
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔