Как мне уничтожить сеанс CakePHP изнутри теста? - PullRequest
0 голосов
/ 11 ноября 2011

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

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

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

Ответы [ 3 ]

1 голос
/ 11 ноября 2011

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

0 голосов
/ 12 ноября 2011
if(App::import('Core','Session')) {
  $session = new CakeSession();
  $session->start();
}

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

0 голосов
/ 11 ноября 2011

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

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