2013-02-17 2 views
0

I'm после ручного 'Agile Web Application Develpment с Yii1.1 и PHP5', и я не знаю, почему тест CRUD неудачен,KO утверждения в тестировании CRUD, от PHPUnit с Yii

Он был правильно создан «Entity AR class» из Gii после правильной проверки «соединения db» также (глава 4), но на данный момент для создания testCRUD выходной результат является ложным утверждением, например:

OK (1 тест , 0 утверждений)

Только один шаг, который я не выполнил в руководстве, и создавал класс CDbConnection, вызывая тесты. Соединение было в порядке. Кроме того, я проверяю все изменения класса Test и файл main.php и все в порядке.

EntityTest.php

class EntityTest extends CDbTestCase 
{ 
    public function testCRUD() 
    { 
    } 
} 

Entity.php

public function testCRUD() 
    { 
    $newEntity=new Entity; 
    $newEntity->setAttributes(
     array(
       'name' => 'Test Entity 1', 
       'description' => 'Test entity number one', 
       'type_id' => 1, 
       'location_lat' => 77, 
       'location_lon' => 77, 
       'create_time' => '2013-02-16 20:36:00', 
       'create_user_id' => 1, 
       'update_time' => '0000-00-00 00:00:00', 
       'update_user_id' => 0, 
      ) 
    ); 
    $this->assertTrue($newEntity->save(false)); 

    $retrievedEntity=Entity::model()->findByPk(1); 
    $this->assertTrue($retrievedEntity instanceof Entity); 
    $this->assertEquals('Salva la Prospe',$retrievedProject->name); 
}   

Приветствия.

ответ

1

Тестирование запускает методы в своем классе, оно не вызывает методы тестирования в тестируемом объекте.

Это объясняет, почему он утверждает 0 утверждений. Ваш тест - это пустой метод.

Просто переместите весь код testCRUD из файла Entity.php в файл EntityTest.php, и он должен работать.

+0

Спасибо, Renzema, это было так, как вы сказали. Я не знаю, о чем он думал? Трудно верить, но я думал, что в классе Test невозможно было напрямую использовать операции CRUD, с которыми обрабатываются информационные данные. Это был очень полезный ответ. –

Смежные вопросы