why does my PHPUnit is complaining that ‘projects’ is an unknown method, when it’s not a method at all
here’s my test.php file code inside the config folder
<?php
return CMap::mergeArray(
require(dirname(__FILE__).'/main.php'),
array(
'components'=>array(
'fixture'=>array(
'class'=>'system.test.CDbFixtureManager',
),
//* uncomment the following to provide test database connection
'db'=>array(
'connectionString'=>'mysql:host=localhost;dbname=yiitddtest',
'emulatePrepare' => true,
'username' => 'root',
'password' => 'password',
'charset' => 'utf8',
'tablePrefix' => 'tbl_'
),
),
)
);
here’s the ProjectTest.php
<?php
class ProjectTest extends CDbTestCase
{
public $fixtures = array(
'projects' => 'Project',
);
public function testCreate()
{
//create a new project
$newProject = new Project;
$newProjectName = 'Test Project Creation';
$newProject->setAttributes(array(
'name' => $newProjectName,
'description' => 'This is a test for new project creation',
'createTime' => '2010-11-19 00:00:00',
'createUser' => '1',
'updateTime' => '2010-11-19 00:00:00',
'updateUser' => '1',
));
$this->assertTrue($newProject->save(false));
//read back the newly created project to ensure the creation worked
$retrievedProject = Project::model()->findByPk($newProject->id);
$this->assertTrue($retrievedProject instanceof Project);
$this->assertEquals($newProjectName , $retrievedProject->name);
}
public function testRead()
{
$retrievedProject = $this->projects('project1');
$this->assertTrue($retrievedProject instanceof Project);
$this->assertEquals('Test Project 1', $retrievedProject->name);
}
public function testUpdate()
{
$project = $this->projects('project2');
$updatedProjectName = 'Updated Test Project 2';
$project->name = $updatedProjectName;
$this->assertTrue($project->save(false));
//read back the record again;
$updatedProject = Project::model()->findByPk($project->id);
$this->assertTrue($updatedProject instanceof Project);
$this->assertEquals($updatedProjectName, $updatedProject->name);
}
public function testDelete()
{
$project = $this->projects('project2');
$savedProjectId = $project->id;
$this->assertTrue($project->delete());
$deletedProject = Project::model()->findByPk($savedProjectId);
$this->assertEquals(NULL, $deletedProject);
}
}
and here’s the tbl_project.php from the fixtures folder
<?php
return array(
'project1' => array(
'name' => 'Test Project 1',
'description' => 'This is test project1',
'create_time' => '',
'create_user_id' => '',
'update_time' => '',
'update_user_id' => '',
),
'projeect2' => 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' => '',
),
);
did i missed something ?