PHPUnit не может прочитать сессию (CodeIgniter и CIUnit) - PullRequest
3 голосов
/ 03 октября 2011

Я использую CodeIgniter 1.7.2 и CIUnit v.0.17

Я довольно новичок в PHPunit, так что, пожалуйста, потерпите меня на этом.У меня есть проект phpUnit, расширенный с помощью CIUnit, для тестирования приложения, встроенного в среду codeigniter.Моя проблема в том, что когда я запускаю тест, я написал метод, вызываемый из теста, проверяет переменную сеанса 'LOGGED_IN', которая проверяет, вошел ли пользователь в систему.Когда я запускаю свой тест, в этот момент он явно падает, поскольку переменная сеанса не была установлена, так как она вызывается из командной строки, а не через HTTP-запрос, который мог бы инициализировать сеанс.

InПо моему мнению, PHPunit не может читать сессии, когда я запускаю тестирование из командной строки ...

Как бы я решил эту проблему?

1 Ответ

1 голос
/ 11 октября 2011

В блоке кода, который устанавливает учетные данные var / проверок сессии, включите этот код:

 if(php_sapi_name() == 'cli' && empty($_SERVER['REMOTE_ADDR'])) {
    //code to say logged in probably return true;
    return true;
 } else {
    //normal login checking of credentials
 }

Это гарантирует, что он запускается из командной строки и безопасен для обхода проверки учетных данных (вероятно.)

Также обратите внимание, что даже в этой старой версии CI вы действительно должны использовать функцию $this->db->session->userdata() для проверки сессий, не обращаясь непосредственно к переменной $ _SESSION.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...