2013-09-24 9 views
1

Я писал некоторые модульные тесты с помощью Codeception, и моя база данных уже сработала с тестовыми данными. При чтении документации я обнаружил, что говорит:Код: Очистка тестовых данных из базы данных

базы данных будут очищены и заселена после каждого испытания

Кто-нибудь знает, есть ли что-нибудь в файле YAML или, возможно, что-то мне нужно положить в метод срыва?

Вот мой тест:

use Codeception\Util\Stub; 

class peopleAdminTest extends \Codeception\TestCase\Test 
{ 
    /** 
    * @var \CodeGuy 
    */ 
    protected $codeGuy; 

    /** 
    * @var the model object 
    */ 
    private $_model; 

    /** 
    * @var some mock data 
    */ 
    private $_data = array("people" => array("title" => "Unit Test Data")); 

    protected function _before() 
    { 
     $this->_model = new People_model(); 
    } 

    public function test_instantiation() 
    { 
     $this->assertInstanceOf('people_model', $this->_model); 
    } 

    public function test_save() 
    { 
     $this->_model->save($this->_data[ 'people' ]); 
     $this->codeGuy->seeInDatabase('pegisis_people', array('title' => 'Unit Test Data')); 
    } 
} 
+0

Посмотрите здесь: http://codeception.com/docs/modules/Db –

+0

Спасибо за комментарий, у меня уже есть запросы для создания моих таблиц в моих файлах tests/_data/dump.sql, но я не думаю, что что-то произойдет потому что у меня все еще остались данные в моей базе данных –

ответ

2

Вы добавили Заполнить: правда и очистки: правда в unit.suite.yml?

Проверить поставщика/код/​​src/Codeception/Module/Db.php. _after() или метод разрыва при кодировании не очищает Db. Очистка выполняется в _before(), а затем выполняется sql.

+0

Спасибо за ответ. Добавление populate: true и cleanup: true действительно работал, хотя он не очищает базу данных при первом запуске теста, только в любое время после. Также у меня нет каталога кода в моем каталоге vender –

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