当 Symfony 请求包装为 Behat 请求对象时,如何设置它?

问题描述 投票:0回答:1

当它被包装为

Symfony\Component\HttpFoundation\Request->attributes->set('token', 123);
时,我试图使用
Behatch\HttpCall\Request
, 但是behatch对象没有属性,只有
setHeader()
setServerParameter()
,但这些都不是我想要的, 原始 Symfony 请求的 getRequest() 也受到保护, 那么对于这种情况如何设置Symfony请求的属性呢?

api symfony testing request behat
1个回答
0
投票
use Behatch\HttpCall\Request;

/**
 * @When I set the token attribute to :token
 */
public function iSetTheTokenAttributeTo($token)
{
    $request = $this->getMainContext()->getRequest();
    $symfonyRequest = $request->getRequest();

    // Set the 'token' attribute
    $symfonyRequest->attributes->set('token', $token);
}

本示例中的

iSetTheTokenAttributeTo
方法是 Behat 步骤定义。它使用
getRequest()
获取 Behatch 'Request' 对象,然后使用
getRequest()->getRequest()
获取底层 Symfony
Request
对象。然后使用
$symfonyRequest->attributes->set('token', $token)
设置“token”属性。

© www.soinside.com 2019 - 2024. All rights reserved.