0

(使用 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 目录中工作,不是吗?

更新:实际上,只是注意到我的默认插件测试用例也因同样的错误而失败,所以我现在正在调查。

4

1 回答 1

1

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

App::import('Component', 'Session');
$Session = new SessionComponent();
$Session->write('Auth.User', array(
    'id' => 1
));
于 2013-01-02T13:44:57.400 回答