Laravel 通知假断言不适用于密码重置测试?
我试着对我的身份验证路径进行测试。对于密码重置路径,我尝试在其中伪造laravel的通知模块,并根据文档进行断言。 这是我的测试文件Laravel 通知假断言不适用于密码重置测试?,laravel,laravel-5,laravel-testing,laravel-factory,Laravel,Laravel 5,Laravel Testing,Laravel Factory,我试着对我的身份验证路径进行测试。对于密码重置路径,我尝试在其中伪造laravel的通知模块,并根据文档进行断言。 这是我的测试文件 public function testUserReceivesAnEmailWithAPasswordResetLink() { $this->withoutExceptionHandling(); Notification::fake(); $user = factory(User::class
public function testUserReceivesAnEmailWithAPasswordResetLink()
{
$this->withoutExceptionHandling();
Notification::fake();
$user = factory(User::class)->make();
$response = $this->post($this->passwordEmailPostRoute(), [
'email' => $user->email,
]);
$this->assertNotNull($token = DB::table('password_resets')->where('email', $user->email));
Notification::assertSentTo($user, PasswordReset::class);
}
当我运行此程序时,我收到了未发送的通知
错误
我的用户模型如下:
use Notifiable, HasApiTokens, SoftDeletes, Uuidable, Switchable, ResourceMapper;
public function role()
{
return $this->belongsTo('App\Models\Role');
}
public function company()
{
return $this->belongsTo('App\Models\Company');
}
public function AauthAccessToken()
{
return $this->hasMany('App\Models\OauthAccessToken');
}
public function isRole($role)
{
return $this->role->uuid == $role;
}
public function sendPasswordResetNotification($token)
{
$this->notify(new PasswordReset($token));
}
public function resource()
{
return $this->morphTo();
}
我想不出确切的问题是什么。您的
phpunit.xml
文件中的QUEUE\u连接的值是多少?它是“sync”。我想我必须把它改成“数据库”对吧?你可以试试,但我认为这没用。您是否可以将代码张贴在您从中调用sendPasswordResetNotification
的位置?如果删除通知::false()代码>你能看到通知已经发送了吗?我把它改成了数据库,它工作了。但问题是它是否真正在幕后工作?在您的phpunit.xml
文件中,QUEUE\u CONNECTION
的价值是什么?它是“sync”。我想我必须把它改成“数据库”对吧?你可以试试,但我认为这没用。您是否可以将代码张贴在您从中调用sendPasswordResetNotification
的位置?如果删除通知::false()代码>你能看到通知已经发送了吗?我把它改成了数据库,它工作了。但问题是它是否真的在幕后起作用?