加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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步骤中的工作方式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读