тесты для своего расширения

Всё про тестирование в Yii 2.0
Ответить
Tommi
Сообщения: 75
Зарегистрирован: 2013.08.01, 13:44

тесты для своего расширения

Сообщение Tommi » 2019.04.16, 13:09

Добрый день.
Не подскажите какой наиболее сейчас годный шаблон чтобы покрыть свое расширение тестами?
В документации к yii2 нашел только общие слова.
Понимаю что есть примеры готового, но оно все разнится, и не всегда понятно как запускать, наполнять фикстурами. Работать надо с БД и AR.

1) Кто то смотрю с codeception пытается, кто то просто с PhpUnit (причем кто то с phpunit/dbunit, а другие без, т.к. уже не поддерживается). Что лучше и когда?

Вот если взять этот способ:
https://github.com/yii2tech/ar-variatio ... se.php#L32

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

    protected function mockApplication($config = [], $appClass = '\yii\console\Application')
    {
        new $appClass(ArrayHelper::merge([
            'id' => 'testapp',
            'basePath' => __DIR__,
            'vendorPath' => $this->getVendorPath(),
            'components' => [
                'db' => [
                    'class' => 'yii\db\Connection',
                    'dsn' => 'sqlite::memory:',
                ],
            ],
        ], $config));
    }
2) Что вот так и надо хардкодить подключение к БД прям в коде?

3) Пойдет что ли если только для вот этой sqlite::memory сделать?

4) И структуру вручную тоже(без миграций) самому создавать?

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

    protected function setupTestDbData()
    {
        $db = Yii::$app->getDb();
        // Structure :
        $table = 'Language';
        $columns = [
            'id' => 'pk',
            'name' => 'string',
            'locale' => 'string',
        ];
        $db->createCommand()->createTable($table, $columns)->execute();
5) Непонятно почему между тестами оно не упадет, таблицы же уже существуют после setUp() у первого теста?

Ответить