Как мне уничтожить сеанс CakePHP из теста?

#session #testing #cakephp #simpletest

#сеанс #тестирование #cakephp #самый простой

Вопрос:

Я нашел тест, который завершается с ошибкой при запуске из браузера, если вы вошли в систему. Мне нужно убедиться, что сеанс очищен перед запуском этого теста. Есть ли простой способ очистить сеанс CakePHP из теста?

Я попытался вызвать Session::Destroy(); но тест, похоже, не может получить видимость сеанса.

Возможно, я пытаюсь импортировать сеанс неправильно? Я использую: App::import(‘Core’, ‘Session’);

Ответ №1:

Вы должны издеваться над компонентом сеанса. Марк Стори сам написал статью, показывающую, как тестировать контроллеры.

Ответ №2:

Я считаю, что gustavotkg верен. Мы должны использовать фиктивные объекты. К сожалению, это будет не совсем просто сделать так, как был настроен код. Мне придется вернуться и кое-что переделать. Для временного исправления я сделал вот что:

 $appController = ClassRegistry::init('AppController');
$appController->constructClasses();
$appController->Session->destroy();
  

Ответ №3:

 if(App::import('Core','Session')) {
  $session = new CakeSession();
  $session->start();
}
  

надеюсь, это может вам помочь..