在我的测试中,我想指定一个 cookie 来配合请求。我追溯了代码以查看 cookie jar 是如何在客户端的 __construct 中使用的。尽管此处的 var_dump 和服务器端的 var_dump 显示没有 cookie 随请求一起发送。我还尝试使用 HTTP_COOKIE 发送一个更简单的字符串,如图所示。
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use Symfony\Component\BrowserKit\Cookie;
use Symfony\Component\BrowserKit\CookieJar;
class DefaultControllerTest extends WebTestCase {
public function test() {
$jar = new CookieJar();
$cookie = new Cookie('locale2', 'fr', time() + 3600 * 24 * 7, '/', null, false, false);
$jar->set($cookie);
$client = static::createClient(array(), array(), $jar); //this doesn't seem to attach cookies as expected!
$crawler = $client->request(
'GET', //method
'/', //uri
array(), //parameters
array(), //files
array(
'HTTP_ACCEPT_LANGUAGE' => 'en_US',
//'HTTP_COOKIE' => 'locale2=fr' //this doesn't work either!
) //server
);
var_dump($client->getRequest());
}
}