Получение ‘LogicException: Нет такого свойства: сеанс’, когда я запускаю тестовый пример phpunit в командной строке

Я пытался запустить тестовый пример phpunit контроллера. но я говорю, что

1) DefinerControllerTestCase :: test_insertImageDetails
LogicException: Нет такого свойства: сессия

/var/www/html/application/tests/_ci_phpunit_test/CIPHPUnitTestCase.php:44
/var/www/html/application/tests/controllers/DefinerControllerTestCase.php:33

Моя версия кодегенератора 3.1, а версия php unit 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);
}
}
}

Пожалуйста помоги мне с этим….

0

Решение

я решил эту проблему с помощью следующего кода.

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);

}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]