Тестирование с базой данных

Всё про тестирование в Yii 2.0
Ответить
Аватара пользователя
maleks
Сообщения: 1643
Зарегистрирован: 2012.12.26, 12:56

Тестирование с базой данных

Сообщение maleks » 2018.08.06, 13:53

Приветствую.

А кто и как тестирует с БД?

Интересно пользуется ли возможностями модуля Codeception::Db ?

И для phpunit там тоже свои дела и доки по тестированию с БД , из этого что может пригодиться?

Или не использовать этого ничего, а только модуль Yii2:
- его фикстурами наполнить базу данными, плюс очистка, транзакции, все это есть
- Пользуемся только haveRecord/grabRecord/seeRecord/dontSeeRecord, а для запросов и всего остального чисто yii-шным кодом, типа

Код: Выделить всё

    public function testTwo()
    {
        $I = $this->tester;
        
        $I->haveRecord(Animal::class, ['name' => 'mouse']);        
        
        $query = (new Query())->from('{{%animal}}')->select(['name']);
        
        $row = $query->one();
        
        $this->assertEquals('mouse', $row['name']);
    }   

sergasd
Сообщения: 45
Зарегистрирован: 2011.02.17, 20:24

Re: Тестирование с базой данных

Сообщение sergasd » 2018.08.07, 21:16

Для функциональных и интеграционных использую только модуль Yii2.
Для каждого теста свой набор фикстур (т.е. через методы haveRecord, завернутые в builder класс для каждой сущности)

Пока хватает для всех задач.

Аватара пользователя
maleks
Сообщения: 1643
Зарегистрирован: 2012.12.26, 12:56

Re: Тестирование с базой данных

Сообщение maleks » 2018.08.08, 06:26

sergasd писал(а):
2018.08.07, 21:16
Для каждого теста свой набор фикстур (т.е. через методы haveRecord, завернутые в builder класс для каждой сущности)
А что, вот эти фикстуры модуля Yii2 не используете?

sergasd
Сообщения: 45
Зарегистрирован: 2011.02.17, 20:24

Re: Тестирование с базой данных

Сообщение sergasd » 2018.08.08, 13:20

Не вижу в них каких-либо существенных приемуществ перед haveRecord, кроме того что можно создавать какие-то глобальные фикстуры.
Предпочитаю чтобы фикстуры были созданы прямо в файле с тестом, это нагляднее.

Ответить