yii2
Testning
Sök…
Ställ in testmiljö
Installera Codeception:
composer global status
composer global require "codeception/codeception=~2.0.0" "codeception/specify=*" "codeception/verify=*"
Installera Faker:
cd /var/www/yii // Path to your application
composer require --dev yiisoft/yii2-faker:*
Skapa en databas, som endast kommer att användas för testerna. Du kan duplicera den befintliga databasen eller tillämpa migreringar:
cd tests
codeception/bin/yii migrate
Justera components['db']
-konfiguration i tests/codeception/config/config-local.php
.
Lägg till katalogen /var/www/yii/vendor/bin
till din sökväg.
Granska alla konfigurations- och .yml
filer.
Starta webbservern, t.ex.
php -S localhost:8080
Kör testerna:
codecept run
Mer information:
- 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
Obs: Dessa instruktioner är giltiga för Yii2 version 2.0.9. I version 2.0.10 kommer enligt Sam Dark att testningsdelen tas upp igen (och instruktionerna måste uppdateras). Version 2.0.10 bör släppas den 11 september 2016: https://github.com/yiisoft/yii2/milestones
Hur man hånar ActiveRecord
Om du vill håna AR som inte försöker ansluta till databasen kan du göra det på följande sätt (om du använder 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'
]);
Fångsten är att vi måste åsidosätta metoden attribut () eftersom ActiveRecord som standard får attributlista från databasschemat som vi försöker undvika.