企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 说明 因为HTTP协议是无状态的,因此在网站开发的过程中我们经常使用session保存用户信息。 在ThinkPHP的单元测试扩展中,我们是可以对session做出断言的。 在该测试扩展中,对session断言的涉及到两个方法: ~~~ 1. assertSessionHas($key, $value = null) 2. assertSessionHasAll(array $bindings) ~~~ 第一个方法是断言session中是否有保存某个key,其值对应value。当只提供一个参数的时候,只判断session是否存在key,而不判断其值。 第二个方法是对key值数组进行判断。 # 例子 下面给出一个例子,用于测试session的两个方法: ~~~ <?php namespace app\index\controller; use think\Session;//注意引入Session class Index { //添加一个值 public function addOneValue(){ Session::clear(); Session::set('value1',1); } //添加多个值 public function addTwoValue(){ Session::clear(); Session::set('value2',2); Session::set('value3',3); } } ~~~ 针对上面的这段代码,我们可以在tests目录下增加一个IndexTest.php对其进行测试: ~~~ <?php namespace tests; //针对Index控制器 class IndexTest extends TestCase { public function testAddOneValue(){ $response=$this->visit('/index/index/addOneValue'); $response->assertSessionHas('value1'); $response->assertSessionHas('value1',1); } public function testAddTwoValue(){ $sessData=array( 'value2'=>2, 'value3'=>3 ); $response=$this->visit('/index/index/addTwoValue'); $response->assertSessionHas($sessData); } } ~~~