感谢你来到这里
我真的很激动
盼望,能有你的支持
捐赠可扫描二维码转账支付
支付宝扫一扫付款
微信扫一扫付款
(微信为保护隐私,不显示你的昵称)
Symfony在设计之初就决意完整支持代码的“可测试”能力。为了让你的代码利用session来轻松测试,我们提供了两种不同的mock存储架构(mock storage mechanisms)以满足单元测试和功能测试。
在测试代码中使用session是一种技巧,因为PHP的(session)工作流状态是全局的,同一PHP进程中不可能有多个并发session。
Mock storage engines模拟了PHP的session工作流,毋需真正启动一个session,令你在测试过程中无有障碍。你可以在同一PHP进程中运行多个(session)实例。
Mock storage drivers不对系统全局的session_id()
或session_name()
进行读写操作。如有需求,框架提供了以下方法用于模拟:
对于单元测试来说没有必要对session读写,你应该使用MockArraySessionStorage
来替换默认的storage engine(session存储引擎):
1 2 3 4 | use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
use Symfony\Component\HttpFoundation\Session\Session;
$session = new Session(new MockArraySessionStorage()); |
对于功能测试来说你可能会在不同的PHP进程中对session数据进行读写,此时只需简单修改存储引擎到MockFileSessionStorage
:
1 2 3 4 | use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Session\Storage\MockFileSessionStorage;
$session = new Session(new MockFileSessionStorage()); |
本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。