【发布时间】:2012-02-12 16:38:35
【问题描述】:
配置/test.php
'components'=>array(
'fixture'=>array(
'class'=>'system.test.CDbFxtureManager'
),
),
tests/unit/EntityTest.php(扩展 CDbTestCase)
public $fixtures = array('entities'=>'Entity'),
测试/夹具/Entity.php
return array(
'entity1'=>array('slug'=>'slug1', 'title'=>'title1'),
'entity2'=>array('slug'=>'slug2', 'title'=>'title2'),
);
现在,在 EntityTest 类中,我尝试获取我的实体
$entities = $this->entities;
$entity = $this->entities('entity1');
输出是“EntityTest”类的未知属性“entities”。测试类是'Entity',数据库中的表名是'tbl_entity','CDbConnection'组件的'tablePrefix'选项设置为'tbl_'
【问题讨论】:
-
在访问
$this->entities之前输入var_dump($this);以查看它有哪些属性。另外,您希望它持有什么类型的价值?看起来您正试图在下一行将其作为函数调用,而不是作为属性访问它。也许只是删除行$entities = $this->entities;。 -
您打印错了:"CDbFxtureManager" => "CDbFixtureManager"
-
试试它的替代语法,
$entity = $this->entities['entity1']; -
也可以试试[如果你使用 setUp() 方法][1]。 [1]:stackoverflow.com/a/20770725/3134155
标签: php unit-testing yii phpunit