yii2
Testowanie
Szukaj…
Skonfiguruj środowisko testowe
Zainstaluj Codeception:
composer global status
composer global require "codeception/codeception=~2.0.0" "codeception/specify=*" "codeception/verify=*"
Zainstaluj Fakera:
cd /var/www/yii // Path to your application
composer require --dev yiisoft/yii2-faker:*
Utwórz bazę danych, która będzie używana tylko do testów. Możesz powielić istniejącą bazę danych lub zastosować migracje:
cd tests
codeception/bin/yii migrate
Dostosuj konfigurację components['db']
w tests/codeception/config/config-local.php
.
Dodaj katalog /var/www/yii/vendor/bin
do swojej ścieżki.
Przejrzyj wszystkie pliki konfiguracji i .yml
.
Uruchom serwer WWW, np .:
php -S localhost:8080
Uruchom testy:
codecept run
Więcej informacji:
- http://www.yiiframework.com/doc-2.0/guide-test-environment-setup.html
- http://codeception.com/install
- https://github.com/yiisoft/yii2-app-basic/tree/master/tests
- https://github.com/yiisoft/yii2-app-advanced/tree/master/tests
Uwaga: Te instrukcje dotyczą wersji Yii2 2.0.9. W wersji 2.0.10 według Sam Dark część testowa zostanie ponownie uwzględniona (i instrukcje muszą zostać zaktualizowane). Wersja 2.0.10 powinna zostać wydana 11 września 2016 r .: https://github.com/yiisoft/yii2/milestones
Jak wyśmiewać ActiveRecord
Jeśli chcesz wyśmiewać AR, który nie próbuje połączyć się z bazą danych, możesz to zrobić w następujący sposób (jeśli używasz 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'
]);
Chodzi o to, że musimy przesłonić metodę atrybuty (), ponieważ ActiveRecord domyślnie pobiera listę atrybutów ze schematu bazy danych, którego staramy się unikać.