我希望有人可以帮助我。我安装并尝试使用phpunit。它运作良好,但现在我尝试使用灯具和setUp方法,它不起作用。
class RightGroupTest extends CDbTestCase {
public $fixtures = array(
'rights' => 'Right',
'groups' => 'RightGroup',
);
public function setUp() {
$group = new RightGroup($this->groups['group1']);
}
如果我执行上面的测试,我会收到一条错误消息:
例外:未知财产'群组' for class' RightGroupTest'。
但是如果我执行这个
class RightGroupTest extends CDbTestCase {
public $fixtures = array(
'rights' => 'Right',
'groups' => 'RightGroup',
);
public function testIndex234() {
$group = new RightGroup($this->groups['group1']);
}
一切正常。
还有第二个问题:
我有很多关系。例如,我可以创建组,每个组都有多个权限。有没有办法在灯具中创建一个包含多个正确对象的组? 我已经尝试过像这样的东西了
return array(
'group1'=>array(
'title'=>'Admin',
'created'=>'2013-05-30',
'updated'=>'2013-05-30',
'rights' => array(
$this->getRecord('right', 'right1'),
$this->getRecord('right', 'right2'),
$this->getRecord('right', 'right3'),
),
),
'group2'=>array(
'title'=>'User',
'created'=>'2013-05-30',
'updated'=>'2013-05-30',
),
);
答案 0 :(得分:3)
在CDbTestCase
方法的setUp()
中加载了灯具。因此,如果要覆盖此方法,则应首先调用父级:
public function setUp()
{
parent::setUp();
// use fixtures here
}
至于你的第二个问题:不,你必须为每个表创建一个单独的fixture文件。夹具系统无法管理相关记录。
答案 1 :(得分:0)
$group = new RightGroup($this->groups['group1']);
你可以使用:
$group = $this->groups('group1');
注意圆括号而不是方括号。