在单元或集成测试中使用Passport :: actingAs后,如何模拟注销?

时间:2018-02-25 22:23:09

标签: php laravel laravel-5.5 laravel-passport

我有一个测试我在哪里模拟登录,然后我想测试一下,好像我没有登录。就像这样。

// log in as user with id 2
$id = 2;
Passport::actingAs(User::findOrFail($id));
testSomeStuff()
...
// now I want to test things as if I was not logged in

有没有办法在一个测试功能中执行此操作?我使用的是Laravel 5.6和Passport 5。

2 个答案:

答案 0 :(得分:1)

在测试中尝试一下

$this->refreshApplication();

有同样的问题,这是唯一对我有用的事情

编辑:似乎也清除了数据库。直接调用注销端点似乎也可以。

$this->actingAs($user)->get('/logout');

答案 1 :(得分:-1)

以下将起作用:

Auth::logout();

不要将use Illuminate\Support\Facades\Auth;设置在测试类之上。