yii2
testen
Zoeken…
Testomgeving instellen
Installeer Codeception:
composer global status
composer global require "codeception/codeception=~2.0.0" "codeception/specify=*" "codeception/verify=*"
Faker installeren:
cd /var/www/yii // Path to your application
composer require --dev yiisoft/yii2-faker:*
Maak een database aan, die alleen voor de tests zal worden gebruikt. U kunt de bestaande database dupliceren of migraties toepassen:
cd tests
codeception/bin/yii migrate
Pas de components['db']
configuratie aan in tests/codeception/config/config-local.php
.
Voeg de map /var/www/yii/vendor/bin
aan je pad.
Bekijk alle configuratie- en .yml
bestanden.
Start de webserver, bijvoorbeeld:
php -S localhost:8080
Voer de tests uit:
codecept run
Meer informatie:
- 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
Opmerking: deze instructies zijn geldig voor de Yii2-versie 2.0.9. In de versie 2.0.10 zal volgens Sam Dark het testgedeelte opnieuw worden verwerkt (en de instructies moeten worden bijgewerkt). De versie 2.0.10 zou op 11 september 2016 moeten verschijnen: https://github.com/yiisoft/yii2/milestones
Hoe ActiveRecord te bespotten
Als u AR wilt bespotten die geen verbinding probeert te maken met de database, kunt u dit op de volgende manier doen (als u PHPUnit gebruikt):
$post = $this->getMockBuilder('\app\model\Post')
->setMethods(['save', 'attributes'])
->getMock();
$post->method('save')->willReturn(true);
$post->method('attributes')->willReturn([
'id',
'status',
'title',
'description',
'text'
]);
De vangst is dat we de attributes () -methode moeten overschrijven, omdat ActiveRecord standaard de attributenlijst uit het databaseschema haalt die we proberen te vermijden.