gpt4 book ai didi

PHP 流明 : Ignore Middleware in API Tests

转载 作者:行者123 更新时间:2023-12-04 08:52:36 26 4
gpt4 key购买 nike

在我的 Lumen 应用程序中,我使用 Lumen Passport 包来保护我的 API 端点。
我的 web.php 通过以下方式实现了防护:

$router->group(['middleware' => 'client.credentials'], function($request) use ($router) {
...
}
对于每个请求,都会发送并验证给定的承载 token 。
我现在的问题是,我不想在编写测试时使用整个身份验证系统。
我定义了一个基本测试类,并且必须为每个测试执行以下操作:
...
abstract class TestBase extends TestCase
{
public function setUp(): void
{
parent::setUp();
// Create my User in DB.
$this->createUserForTest();
// Register a new passport client .
$this->createClientForTest();
// Call the /api/oauth/token endpoint to get a valid token for the given client + user.
$this->createTokenForTest();
}
}
示例测试如下所示:
public function get_getSomeData_validData()
{
$response = $this->call('GET', "/some/awesome/endpoint");
$response->assertStatus(200);
}
这是有效的,但是因为我需要为每个单独的测试执行此操作,所以如果您有很多测试,这需要一些时间。
如果您自己调用api,是否有可能忽略中间件?

最佳答案

我想你可以像 Passport::actingAsClient($client); 一样简单使用测试用
引用链接 https://github.com/laravel/passport/pull/1083
所以你可以像这样使用

$user =  $this->createUserForTest();
Passport::actingAsClient($user);
护照核心代码
https://github.com/laravel/passport/pull/1083/files

关于PHP 流明 : Ignore Middleware in API Tests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64021078/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com