Mad*_*sen 4 testing global laravel laravel-7
我想在 setUp 方法中为测试中的所有请求设置标头,而不是单独对所有测试进行设置。
是否有捷径可寻?
所以例子:
$this->withHeaders([
'Authorization' => 'Bearer ' . $response['data']['token'],
'Accept' => 'application/json'
])
Run Code Online (Sandbox Code Playgroud)
到:
setUp(){
$this->setHeaders([
'Authorization' => 'Bearer ' . $response['data']['token'],
'Accept' => 'application/json'
]);
}
Run Code Online (Sandbox Code Playgroud)
小智 18
当然。您可以创建一个中间父类TestCaseWithToken(或任何您想命名的名称),它将扩展PHPUnit\Framework\TestCase并在其中添加您的重写方法
protected function setUp(): void
{
parent::setUp();
// set your headers here
$this->withHeaders([
'Authorization' => 'Bearer ' . $this->getBearerToken(),
'Accept' => 'application/json'
]);
}
protected function getBearerToken()
{
return '';
}
Run Code Online (Sandbox Code Playgroud)
此外,如果$response变量中的标记发生变化,您可以构建一个返回标记的函数,以便您可以轻松地重写各个测试类中的方法。您可以选择类属性和 setter 方法,其工作原理相同。
如果你想获取你想登录的用户的token,也可以轻松完成。只需让该getBearerToken方法返回类似的内容auth('api')->login($this->authUser);(这将返回实际的令牌)并设置$authUser每个测试文件一次。希望这可以帮助您朝着正确的方向前进。
| 归档时间: |
|
| 查看次数: |
5159 次 |
| 最近记录: |