Ste*_*nte 4 php unit-testing symfony
我正在为使用Symfony2的会话服务获取数据的操作编写功能测试.在我的测试类的setUp
方法中,我打电话$this->get('session')->set('foo', 'bar');
.如果我在实际测试方法print_r($this->get('session')->all());
中setUp
或在实际测试方法中输出所有会话数据(使用),我会回来foo => bar
.但是如果我尝试从正在测试的动作输出会话数据,我会得到一个空数组.有谁知道为什么会这样,我怎么能阻止它?
我应该注意,如果我$_SESSION['foo'] = 'bar'
从setUp()
数据内部调用是持久的,我可以从操作中访问它 - 这个问题似乎是Symfony2会话服务的本地问题.
首先尝试使用客户端的容器(我假设你正在使用WebTestCase):
$client = static::createClient();
$container = $client->getContainer();
Run Code Online (Sandbox Code Playgroud)
如果仍然无效,请尝试保存会话:
$session = $container->get('session');
$session->set('foo', 'bar');
$session->save();
Run Code Online (Sandbox Code Playgroud)
我没有在功能测试中尝试它,但这是它在Behat步骤中的工作方式.