Tak*_*eko 2 php phpunit unit-testing yii
配置/ test.php的
'components'=>array(
'fixture'=>array(
'class'=>'system.test.CDbFxtureManager'
),
),
Run Code Online (Sandbox Code Playgroud)
tests/unit/EntityTest.php(扩展CDbTestCase)
public $fixtures = array('entities'=>'Entity'),
Run Code Online (Sandbox Code Playgroud)
测试/夹具/ Entity.php
return array(
'entity1'=>array('slug'=>'slug1', 'title'=>'title1'),
'entity2'=>array('slug'=>'slug2', 'title'=>'title2'),
);
Run Code Online (Sandbox Code Playgroud)
现在,在EntityTest类中,我尝试获取我的实体
$entities = $this->entities;
$entity = $this->entities('entity1');
Run Code Online (Sandbox Code Playgroud)
输出是'Unknown property'实体"for class"EntityTest"'.测试类是'Entity',数据库中的表名是'tbl_entity','tablebrefix'选项'CDbConnection'组件设置为'tbl_'
我们去尸体吧!:)
您的问题是在灯具中命名文件.你提到它是a tests/fixtures/Entity.php,它应该在你的Model,class之后,但事实上,文件fixtures夹中的文件应该以tableName你的模型的名字命名.我相信你的Entity模型的真实表名是entity(全部为小写),所以只需重命名该文件.我有几次类似的问题,解决方案在文档中清楚地说明:"一个fixture表示为一个PHP脚本,其名称(没有后缀)与表名相同(如果需要模式名称,它应该是前缀为表名.)"
| 归档时间: |
|
| 查看次数: |
1825 次 |
| 最近记录: |