我好像对Yii的固定装置有点问题。问题似乎是这样的:
public $fixtures=array('projects'=>'Project'); 模型项目存在,我在测试的fixtures文件夹中有一个名为tbl_project.php的fixtures文件,我的表名为tbl_project。fixtures文件中包含以下内容。
return array(
'project1' => array(
'name' => 'Test Project 1',
'description' => 'This is test project 1',
'create_time' => '',
'create_user_id' => '',
'update_time' => '',
'update_user_id' => '',
),
'project2' => array(
'name' => 'Test Project 2',
'description' => 'This is test project 2',
'create_time' => '',
'create_user_id' => '',
'update_time' => '',
'update_user_id' => '',
),
'project3' => array(
'name' => 'Test Project 3',
'description' => 'This is test project 3',
'create_time' => '',
'create_user_id' => '',
'update_time' => '',
'update_user_id' => '',
),
); 这实际上出自“使用Yii进行敏捷Web应用程序开发”一书。当我运行测试用例时,我得到以下内容,但没有测试结果信息。
PHPUnit 3.6.10 by Sebastian Bergmann.
Configuration read from ETC/protected/tests/phpunit.xml如果我从顶部移除fixtures数组,我会得到以下结果。
Time: 0 seconds, Memory: 9.25Mb
There was 1 error:
1) ProjectTest::testRead
Exception: Unknown method 'projects' for class 'ProjectTest'. 这显然是有道理的。我不知道我做错了什么。
发布于 2012-12-02 04:17:41
class ProjectTest extends CDbTestCase{
protected $fixtures = array(
'projects' => 'Project',
);
public function testRead(){
$receivedProject = $this->projects('Project1');
$this->assertTrue($receivedProject instanceof Project);
$this->assertEquals($receivedProject->name,'test 1');
}
...` ...
'components'=>array(
'fixture'=>array(
'class'=>'system.test.CDbFixtureManager',
),
'db'=>array(
'connectionString' =>'mysql:host=localhost;dbname=your_db_name',
'emulatePrepare' => true,
'username' => 'username',
'password' => 'passwd',
'charset' => 'utf8',
),
....读取
发布于 2013-12-25 16:31:08
还要确保在您自己的setUp()中调用父级setUp()方法
class SomeTest extends CDbTestCase {
public $fixtures = array(
'somes' => 'Some',
);
protected function setUp() {
parent::setUp();
// your code....
}
// your tests .......................
}发布于 2012-05-27 07:32:45
你的测试类是从CDbTestCase而不是CTestCase派生的吗?
您的测试类应该如下所示:
class ProjectTest extends CDbTestCase{
protected $fixtures = array(
'projects' => 'Project',
);
public function testRead(){
$receivedProject = $this->projects('Project1');
$this->assertTrue($receivedProject instanceof Project);
$this->assertEquals($receivedProject->name,'test 1');
}https://stackoverflow.com/questions/9886947
复制相似问题