我有一个看起来像这样的测试:
$user = factory(User::class)->state('verified')->create();
$this->be($user);
$file = new UploadedFile(storage_path('testing/user.jpg'), 'user.jpg', 'image/jpeg');
$this->post('/account/missing-fields/upload', [
'file' => $file
], ['Content-Type' => 'multipart/form-data'])->dump();
$this->post('/account/missing-fields/upload', [
'file' => $file
], ['Content-Type' => 'multipart/form-data'])->dump();
{#2983
+"token": "hHAY7vD8fOiW8mVU9OIlxVSJv5FzAq52e0coaFHKRC"
+"extension": "jpg"
+"mime": "image/jpeg"
}
{#3072
+"message": "Method Illuminate\Auth\RequestGuard::viaRemember does not exist."
+"exception": "BadMethodCallException"
+"file": "/app/backend/vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php"
...
}
如您所见,第一次请求成功,并返回一个令牌,当我第二次请求时,Laravel 突然说该viaRemember
方法不存在。
我不知道为什么不应该工作。
应该注意的是,我可以更改发布请求,第二个总是会像上面一样失败。
通过框架,错误发生在Illuminate\Session\Middleware\AuthenticateSession
,其中第一个请求有一个web
保护,第二个由于某种原因有web
and airlock
。