php – 如何在功能测试期间使用Symfony2的会话服务保存数据?
发布时间:2020-12-13 17:40:52 所属栏目:PHP教程 来源:网络整理
导读:我正在为使用Symfony2的会话服务获取数据的操作编写功能测试.在我的测试类的setUp方法中,我调用$this- get(‘session’) – set(‘foo’,’bar’);.如果我在setUp或实际测试方法中输出所有会话数据(使用print_r($this- get(‘session’) – all());),我会回
我正在为使用Symfony2的会话服务获取数据的操作编写功能测试.在我的测试类的setUp方法中,我调用$this-> get(‘session’) – > set(‘foo’,’bar’);.如果我在setUp或实际测试方法中输出所有会话数据(使用print_r($this-> get(‘session’) – > all());),我会回到foo =>酒吧.但是如果我尝试从正在测试的动作输出会话数据,我会得到一个空数组.有谁知道为什么会这样,我怎么能阻止它?
我应该注意,如果我从setUp()中调用$_SESSION [‘foo’] =’bar’,数据将被保留,我可以从操作中访问它 – 这个问题似乎是Symfony2会话服务的本地问题. 解决方法
首先尝试使用客户端的容器(我假设你正在使用WebTestCase):
$client = static::createClient(); $container = $client->getContainer(); 如果仍然无效,请尝试保存会话: $session = $container->get('session'); $session->set('foo','bar'); $session->save(); 我没有在功能测试中尝试它,但这是它在Behat步骤中的工作方式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |