Поиск…


Настройка тестовой среды

Установить код:

composer global status
composer global require "codeception/codeception=~2.0.0" "codeception/specify=*" "codeception/verify=*"

Установите Faker:

cd /var/www/yii                                    // Path to your application
composer require --dev yiisoft/yii2-faker:*

Создайте базу данных, которая будет использоваться только для тестов. Вы можете дублировать существующую базу данных или применять миграции:

cd tests
codeception/bin/yii migrate

Отрегулируйте конфигурацию components['db'] в tests/codeception/config/config-local.php .

Добавьте каталог /var/www/yii/vendor/bin на ваш путь.

Просмотрите все файлы конфигурации и .yml .

Запустите веб-сервер, например:

php -S localhost:8080

Запустите тесты:

codecept run

Дополнительная информация:

Примечание. Эти инструкции действительны для версии Yii2 версии 2.0.9. В версии 2.0.10 в соответствии с Sam Dark часть тестирования будет переопределена (и инструкции должны быть обновлены). Версия 2.0.10 должна быть выпущена 11 сентября 2016 года: https://github.com/yiisoft/yii2/milestones

Как насмехаться с ActiveRecord

Если вы хотите высмеять AR, который не пытается подключиться к базе данных, вы можете сделать это следующим образом (если используете PHPUnit):

$post = $this->getMockBuilder('\app\model\Post')
    ->setMethods(['save', 'attributes'])
    ->getMock();
$post->method('save')->willReturn(true);
$post->method('attributes')->willReturn([
    'id',
    'status',
    'title',
    'description',
    'text'
]);

Ловушка заключается в том, что нам нужно переопределить метод attributes (), поскольку по умолчанию ActiveRecord получает список атрибутов из схемы базы данных, которую мы пытаемся избежать.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow