yii2
Testen
Suche…
Testumgebung einrichten
Codeception installieren:
composer global status
composer global require "codeception/codeception=~2.0.0" "codeception/specify=*" "codeception/verify=*"
Faker installieren:
cd /var/www/yii // Path to your application
composer require --dev yiisoft/yii2-faker:*
Erstellen Sie eine Datenbank, die nur für die Tests verwendet wird. Sie können die vorhandene Datenbank duplizieren oder Migrationen anwenden:
cd tests
codeception/bin/yii migrate
Passen Sie die Konfiguration der components['db']
in tests/codeception/config/config-local.php
.
Fügen Sie das Verzeichnis /var/www/yii/vendor/bin
zu Ihrem Pfad hinzu.
Überprüfen Sie alle Konfigurations- und .yml
Dateien.
Starten Sie den Webserver, zB:
php -S localhost:8080
Führen Sie die Tests durch:
codecept run
Mehr Informationen:
- 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
Hinweis: Diese Anweisungen gelten für die Yii2-Version 2.0.9. In der Version 2.0.10 wird laut Sam Dark der Testteil umgestaltet (und die Anweisungen müssen aktualisiert werden). Die Version 2.0.10 sollte am 11. September 2016 veröffentlicht werden: https://github.com/yiisoft/yii2/milestones
Wie wird ActiveRecord gespielt?
Wenn Sie AR übermitteln möchten, das nicht versucht, eine Verbindung zur Datenbank herzustellen, können Sie dies auf folgende Weise tun (bei Verwendung von 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'
]);
Der Haken ist, dass wir die attributes () -Methode überschreiben müssen, da ActiveRecord standardmäßig die Attributliste aus dem Datenbankschema abruft, das wir zu vermeiden versuchen.