我有一个可邮寄类,用于向用户发送电子邮件,效果很好。我想写一些 phpunit 测试来检查邮件是否真的发送了。不幸的是,我在文档中找不到很好的解释。我的可邮寄课程:class UserInvite extends Mailable{ use Queueable, SerializesModels; public $user; public $inviteMessage; /** * Create a new message instance. * * @param User $user * @param string $inviteMessage */ public function __construct(User $user, string $inviteMessage) { $this->user = $user; $this->inviteMessage = $inviteMessage; } /** * Build the message. * * @return $this */ public function build() { return $this->view('emails.mail'); }}测试:/** @test */public function it_sends_invite(){ Mail::fake(); $user = factory(User::class)->create(); $inviteMessage = 'test'; Mail::assertSent(new UserInvite($user, $inviteMessage));}错误:ErrorException: 类 App\Mail\UserInvite 的对象无法转换为字符串解决方案:/** @test */ public function it_sends_invite() { Mail::fake(); $user = factory(User::class)->create(); Mail::to($user)->send(new UserInvite($user, 'message')); Mail::assertSent(UserInvite::class); }
1 回答
慕码人8056858
TA贡献1803条经验 获得超6个赞
在测试发送的邮件时,您不会传递整个可邮寄的实例。PHPUnit 无论如何都无法比较完整的对象。相反,您只需传递完全限定的类名:
// use App\Mail\UserInvite;
Mail::assertSent(UserInvite::class);
- 1 回答
- 0 关注
- 225 浏览
添加回答
举报
0/150
提交
取消