使用会话进行测试
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.8,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
使用会话进行测试
ob娱乐下载Symfony在设计时就考虑到了代码可测试性。为了使使用会话的代码易于测试,我们为单元测试和功能测试提供了两种单独的模拟存储机制。
使用真实会话测试代码很棘手,因为PHP的工作流状态是全局的,在同一个PHP进程中不可能有多个并发会话。
模拟存储引擎模拟PHP会话工作流,而无需实际启动会话工作流,从而允许您轻松地测试代码。您还可以在同一个PHP进程中运行多个实例。
模拟存储驱动程序不读写系统全局变量session_id ()
或session_name ()
.如果需要,提供方法来模拟:
- getId ():获取会话ID。
- setId ():设置会话ID。
- getName ():获取会话名。
- setName ():设置会话名。
单元测试
对于不需要持久化会话的单元测试,您应该简单地将默认存储引擎替换为MockArraySessionStorage:
1 2 3 4
使用ob娱乐下载\组件\HttpFoundation\会话\存储\MockArraySessionStorage;使用ob娱乐下载\组件\HttpFoundation\会话\会话;$会话=新会话(新MockArraySessionStorage ());
功能测试
对于功能测试,您可能需要跨单独的PHP进程持久化会话数据,只需将存储引擎更改为MockFileSessionStorage:
1 2 3 4
使用ob娱乐下载\组件\HttpFoundation\会话\会话;使用ob娱乐下载\组件\HttpFoundation\会话\存储\MockFileSessionStorage;$会话=新会话(新MockFileSessionStorage ());
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。