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

Mat*_*t D 5 php laravel laravel-passport laravel-5.5

我有一个测试,我模拟登录,然后我想测试一些事情,就好像我没有登录一样。就像这样。

// 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
Run Code Online (Sandbox Code Playgroud)

有没有办法在一个测试函数中做到这一点?我正在使用 Laravel 5.6 和 Passport 5。

nol*_*pro 0

在你的测试中试试这个

$this->refreshApplication();
Run Code Online (Sandbox Code Playgroud)

遇到了同样的问题,这是唯一对我有用的东西

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

$this->actingAs($user)->get('/logout');
Run Code Online (Sandbox Code Playgroud)