gpt4 book ai didi

php - 在 Laravel 4 单元测试中,如何在请求中设置 cookie?

转载 作者:行者123 更新时间:2023-12-03 22:53:44 24 4
gpt4 key购买 nike

在我的 Laravel 4 应用程序中,我希望测试特定端点是否正确检测并响应请求中的 cookie。因此,在我的单元测试中,我希望在请求中设置一个 cookie,然后对响应执行标准断言。

我在单元测试中的调用是这样的形式:

$response = $this->client->request($method, $endpoint, $params, $files, $server);

我为 $method$endpoint$params 和空的 $files 指定了正确的值code> 和 $server

我尝试了很多变体,将 cookie 值放在 $params$server 中的各种键下,但到目前为止,没有运气看到 cookie 出现在Cookie:get('myname) 下的 Controller 。

如何在单元测试的请求中设置名称为“myname”且值为“myvalue”的 cookie?

更新:

我想我可以简单地向请求添加一个 header :

Cookie: myname=myvalue

但我必须相信有一种更像 Laravel 的方式来做到这一点。

更新 2:

上面的方法有效。

最佳答案

看起来我们可以在扩展 Illuminate\Foundation\Testing\TestCase 的测试中执行以下操作:

$this->client->getCookieJar()->set(
new \Symfony\Component\BrowserKit\Cookie('myname', 'myvalue')
);

然后 cookie 将通过标准暴露在 Controller 中:

$cookie = Cookie::get('myname'); // $cookie gets 'myvalue'

(通过 Laravel.io )

关于php - 在 Laravel 4 单元测试中,如何在请求中设置 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34227816/

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