如何从测试内部销毁CakePHP会话?

时间:2011-11-11 19:19:34

标签: session testing cakephp simpletest

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

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

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

3 个答案:

答案 0 :(得分:1)

您应该模拟Session组件。 Mark Story自己写了一篇文章,显示how to test controllers

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

if(App::import('Core','Session')) {
  $session = new CakeSession();
  $session->start();
}
希望这可以帮到你..