get 'LogicException: No such property: session'当我在命令


Getting 'LogicException: No such property: session' when i run phpunit test case in command prompt

我试图运行一个控制器的phpunit测试用例。但是我想说的是

1) DefinerControllerTestCase:: test_insertImageDetailsLogicException: No such property: session

/var/www/html/应用程序/测试/_ci_phpunit_test/CIPHPUnitTestCase.php: 44/var/www/html/application/测试/控制器/DefinerControllerTestCase.php: 33

我的代码生成器版本是3.1和php单元版本是5.5.0这是我的控制器代码

class Definer extends CI_Controller {
    function __construct() 
    {
        parent::__construct();
        date_default_timezone_set('Asia/Kolkata');
        $this->load->model("definer_model");
    }
    public function index()
    {
    }
    public function insertImageDetails()
    {
        $details['newImageName']=$this->session->userdata('newImageName');
        $data['imageOSName']=$this->session->userdata('imageOSName');
        $data['ImageReceipes']=$this->session->userdata("ImageReceipes");
        $data['imageOthers']=$this->session->userdata('imageOthers');
        $details['requirement']=json_encode($data);
        $details['defined_by_user']=$this->session->userdata('user_id');
        $details['defined_by_role']=$this->session->userdata('user_role');
        $details['date']=date('Y-m-d H:i:s');
        $details['status']='Y';
        $this->definer_model->addImageDetails($details);
        redirect(site_url('Definer/AddNewImage')); 
    }
}

测试用例代码在这里

class DefinerControllerTestCase extends TestCase
{
  public function __construct(){
  parent::__construct();
 $this->definer = new Definer();
 }
 public function test_insertImageDetails()
 {
 $_SESSION["newImageName"] ='TestSample';
     $this->session->set_userdata('newImageName', 'TestSample');
     $this->session->set_userdata('imageOSName', 'TestSample');
     $this->session->set_userdata('ImageReceipes', 'TestSample');
     $this->session->set_userdata('user_id', 'TestSample');
     $this->session->set_userdata('user_role', 'TestSample');
     $this->session->set_userdata('imageOthers', 'TestSample');
     $output = $this->request('GET', ['Definer', 'insertImageDetails']);
  if($output != "")
  {
   $this->assertContains('<title>Golden Image Managament System Dashboard</title>', $output);
  }
 } 
} 

请帮帮我....

我用下面的代码解决了这个问题。

public function test_insertImageDetails()
{
$this->request->setCallable(
function ($CI) {
$CI->session->newImageName = 'TestSample';
$CI->session->imageOSName = 'TestSample';
$CI->session->ImageReceipes = 'TestSample';
$CI->session->user_id = 'TestSample';
$CI->session->user_role = 'TestSample';
$CI->session->imageOthers = 'TestSample';
}
);
$this->request('GET', ['Definer', 'insertImageDetails']);
$this->assertTrue(true);
}