我在CakePHP(2.0.1)应用程序中有以下测试用例:
<?php
public function testGetTenUsers() {
$users = $this->User->find('all' , array('limit' => 10));
// .... assert some things
}
?>
这很好用,并从我的灯具中返回10条记录。
当我将Translate行为添加到我的User模型时,此测试不再有效(返回空数组)。
不确定如何处理此问题。我是否创建了一个I18n夹具,或解除了这种行为?
任何帮助表示感谢。
答案 0 :(得分:2)
正如您刚才所说,最好的解决方案是创建一个夹具。
取消绑定此行为将使您的测试不太可能捕获错误。我的观点是:你的生产配置越远,找到错误和怪癖就越复杂。
这是i18n的默认夹具:
<?php
// I'm working in CakePHP 1.3 at the moment
class I18nFixture extends CakeTestFixture {
public $name = 'I18n';
public $table = 'i18n';
public $import = array(
'table'=>'i18n',
'records'=>true
);
}
我从默认配置导入了i18n表中的行,因为我只有静态内容(即类型,角色的翻译)。如果您有许多用户输入,我建议不要这样做。
另请注意,如果您想避免让导入器启动,您必须在灯具中指定表名。(因此您的表名保持&#34; i18n&#34;而不是&#34; i18ns&# 34)