#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();
}
надеюсь, это может вам помочь..