使用Taggable插件时,测试未能包含Cakesession

时间:2013-01-02 12:25:14

标签: unit-testing cakephp cakephp-1.3

(使用CakePHP 1.3和Taggable插件。)

运行我的测试时失败:

Fatal error: Class 'CakeSession' not found in app/plugins/tags/models/behaviors/taggable.php on line 137

在我的测试中,我包括灯具,如下所示:

var $fixtures = array('app.tag','app.tagged'); //including others

但是,当我使用烘焙版本时,工作正常

var $fixtures = array('app.plugin.tags.tag','app.plugin.tags.tagged');

这个问题是它现在正在使用插件测试文件夹中的测试夹具。现在,我可以在那里添加我的灯具并完成它,但这看起来并不正确。

插件夹具(特定于我的应用)应该可以在我的app / tests目录中使用,不是吗?

更新:实际上,只是注意到我的默认插件测试用例也失败并出现同样的错误,所以我现在正在研究它。

1 个答案:

答案 0 :(得分:1)

问题是Taggable使用在测试期间未设置的会话信息。在我的测试用例中,我使用以下代码手动设置用户ID,现在可以使用:

App::import('Component', 'Session');
$Session = new SessionComponent();
$Session->write('Auth.User', array(
    'id' => 1
));