在php中测试变量的函数是,如何在PHP中单元测试会话变量?

本文探讨了在PHP中如何正确管理和测试会话,特别是使用session_start()函数的情况。代码示例展示了如何在不发送头信息的情况下初始化会话,以及如何在命令行模式下处理会话。在测试时,可以通过模拟会话变量来独立测试各个单元,确保代码的可测试性和隔离性。
摘要由CSDN通过智能技术生成

菲尔建议我使用课程进行会话.如果手动调用session_start(),则会将代码绑定到PHP会话实现.我对session_start的调用受到我的会话类的保护,具有以下内容:

if (!isset($_SESSION))

{

// If we are run from the command line interface then we do not care

// about headers sent using the session_start.

if (PHP_SAPI === 'cli')

{

$_SESSION = array();

}

elseif (!headers_sent())

{

if (!session_start())

{

throw new Exception(__METHOD__ . 'session_start failed.');

}

}

else

{

throw new Exception(

__METHOD__ . 'Session started after headers sent.');

}

}

编辑:

上面的代码将进入你的会话类(可能由它的构造函数以某种方式调用).命令行PHP创建一个数组而不是调用session_start(它在命令行上不起作用).

在测试依赖于会话变量的代码时,我在我的测试中模拟了会话变量:

$_SESSION = array('key1' => 'value you want', 'key2' => 'etc.');

这允许您测试将在页面上收到的所有可能的会话设置.

在我看来,测试会话值的创建属于创建它们的代码,因此嘲笑它们的存在对我来说似乎没问题.这样,您可以单独测试每个单元,而不是将它们组合在一起并在测试之间保持会话值.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值