Я следую за «Agile-разработкой веб-приложений с помощью yii 1.1 и php5», и я нахожусь в разделе тестирования с разделами. Я выполнил их код, но я не могу получить доступ к устройству …
Я запускаю свои тесты с phpunit, и он возвращает мне это
c:\wamp\www\agileBook\protected\tests>phpunit unit/ProjectTest.php PHPUnit 3.6.11 by Sebastian Bergmann. Configuration read from C:\wamp\www\agileBook\protected\tests\phpunit.xml ←[31;1mE←[0m Time: 0 seconds, Memory: 5.75Mb There was 1 error: 1) ProjectTest::testRead Exception: Unknown property 'projects' for class 'ProjectTest'. C:\wamp\yii\framework\test\CDbTestCase.php:63 C:\wamp\www\agileBook\protected\tests\unit\ProjectTest.php:11 C:\wamp\bin\php\php5.3.13\phpunit:46 ←[37;41m←[2KFAILURES! ←[0m←[37;41m←[2KTests: 1, Assertions: 0, Errors: 1. ←[0m←[2K
Как я могу заставить его работать?
спасибо за помощь
my fixture: C: \ wamp \ www \ agileBook \ protected \ tests \ fixtures \ tbl_project.php
<?php 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' =>'', ), ), ?>
мой тестовый класс Project: C: \ wamp \ www \ agileBook \ protected \ tests \ unit \ ProjectTest.php
Я изменил $ this-> projects ('project1') (из книги) для $ this-> projects ['project1'], потому что я вижу в сообщении на форуме, что проекты – это массив, а не метод.
<?php class ProjectTest extends CDbTestCase{ public $fixture = array('projects'=>'Project'); public function testRead(){ // READ the new project $receivedProject = $this->projects['project1']; $this->assertTrue($receivedProject instanceof Project); $this->assertEquals($receivedProject->name,'Test Project 1'); } } ?>
моя тестовая конфигурация: C: \ wamp \ www \ agileBook \ protected \ config \ test.php
<?php return CMap::mergeArray( require(dirname(__FILE__).'/main.php'), array( 'components'=>array( 'fixture'=>array( 'class'=>'system.test.CDbFixtureManager', ), 'db'=>array( 'connectionString' => 'mysql:host=localhost;dbname=trackstar_test', 'emulatePrepare' => true, 'username' => 'root', 'password' => '', 'charset' => 'utf8', ), ), ) );