使用会话进行测试

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.1,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

使用会话进行测试

欧宝娱乐app下载地址Symfony在设计时就考虑到了代码可测试性。为了使使用会话的代码易于测试,我们为单元测试和功能测试提供了两种单独的模拟存储机制。

使用真实会话测试代码很棘手,因为PHP的工作流状态是全局的,在同一个PHP进程中不可能有多个并发会话。

模拟存储引擎模拟PHP会话工作流,而无需实际启动会话工作流,从而允许您轻松地测试代码。您还可以在同一个PHP进程中运行多个实例。

模拟存储驱动程序不读写系统全局变量session_id ()session_name ().如果需要,提供方法来模拟:

单元测试

对于不需要持久化会话的单元测试,您应该将默认存储引擎替换为MockArraySessionStorage

1 2 3 4
使用欧宝娱乐app下载地址组件HttpFoundation会话存储MockArraySessionStorage使用欧宝娱乐app下载地址组件HttpFoundation会话会话会话会话(MockArraySessionStorage ());

功能测试

对于功能测试,您可能需要跨单独的PHP进程持久化会话数据,请将存储引擎更改为MockFileSessionStorage

1 2 3 4
使用欧宝娱乐app下载地址组件HttpFoundation会话会话使用欧宝娱乐app下载地址组件HttpFoundation会话存储MockFileSessionStorage会话会话(MockFileSessionStorage ());
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。