0

如果您已登录,我发现从浏览器运行时会失败的测试。我需要确保在运行此测试之前清除会话。有没有一种简单的方法可以从测试中清除 CakePHP 会话?

我尝试调用 Session::Destroy(); 但测试似乎无法获得会话的可见性。

也许我试图错误地导入会话?我正在使用: App::import('Core', 'Session');

4

3 回答 3

1

您应该模拟 Session 组件。Mark Story 自己写了一篇文章来展示如何测试控制器

于 2011-11-11T19:27:14.180 回答
0

我相信 gustavotkg 是正确的。我们应该使用模拟对象。不幸的是,按照代码设置的方式来做这件事并不完全直接。我将不得不回去重做一些事情。对于临时修复,这就是我所做的:

$appController = ClassRegistry::init('AppController');
$appController->constructClasses();
$appController->Session->destroy();
于 2011-11-11T19:45:13.470 回答
0
if(App::import('Core','Session')) {
  $session = new CakeSession();
  $session->start();
}

希望这可以帮到你..

于 2011-11-12T04:38:06.017 回答