REST API에 대한 테스트를 설정하려고하고 요청 객체 내에 세션 변수를 설정해야합니다. 일반적인 방법은 효과가없는 것 같습니다. 당신은 당신에게 그런Symfony 2 - 유닛 테스팅 중에 요청 객체에 세션 데이터 추가하기
WebTestCase를 사용해야합니다
$session = $request->getSession();
$session->set('my_session_variable', 'myvar');
REST API에 대한 테스트를 설정하려고하고 요청 객체 내에 세션 변수를 설정해야합니다. 일반적인 방법은 효과가없는 것 같습니다. 당신은 당신에게 그런Symfony 2 - 유닛 테스팅 중에 요청 객체에 세션 데이터 추가하기
WebTestCase를 사용해야합니다
$session = $request->getSession();
$session->set('my_session_variable', 'myvar');
짧은 조각은이 값을
echo $session->get('name');
를 얻기 위해 세션
$session = $this->getRequest()->getSession();
$session->set('name', 'Sensorario');
의 일부 값과 아주 아주 간단한 예제를 설정합니다 비슷한 질문에 대한 답에 설명 된 것을 할 수 있습니다 : how-can-i-persist-data-with-symfony2s-session-service-during-a-functional-test
과 같이 뭔가 : 당신이 WebTestCase를 사용하는 경우
$client = static::createClient();
$container = $client->getContainer();
$session = $container->get('session');
$session->set('name', 'Sensorario');
$session->save();
, 당신은 "세션"서비스를 검색 할 수 있습니다. 이 서비스를 , 당신은 할 수 있습니다
코드는 다음과 같습니다.
use Symfony\Component\BrowserKit\Cookie;
....
....
public function testARequestWithSession()
{
$client = static::createClient();
$session = $client->getContainer()->get('session');
$session->start(); // optional because the ->set() method do the start
$session->set('my_session_variable', 'myvar'); // the session is started here if you do not use the ->start() method
$session->save(); // important if you want to persist the params
$client->getCookieJar()->set(new Cookie($session->getName(), $session->getId())); // important if you want that the request retrieve the session
$client->request(.... ...
작동하지 않습니다 ... CLI에서 오는 요청 변수를 수동으로 만들어야합니다. – greg
테스트에 $ this-> getRequest()가 없습니다. 그리고 요청을하기 전에 $ this-> $ client-> getRequest()를 null에 넣으십시오. 그럼, 작동하지 않습니다 –