Ricerca…


Configurare l'ambiente di test

Installa Codeception:

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

Installa Faker:

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

Creare un database, che verrà utilizzato solo per i test. È possibile duplicare il database esistente o applicare le migrazioni:

cd tests
codeception/bin/yii migrate

Regola la configurazione dei components['db'] nei tests/codeception/config/config-local.php .

Aggiungi la directory /var/www/yii/vendor/bin al tuo percorso.

Esamina tutti i file di configurazione e .yml .

Avvia il server web, ad esempio:

php -S localhost:8080

Esegui i test:

codecept run

Maggiori informazioni:

Nota: queste istruzioni sono valide per la versione 2.0.9 di Yii2. Nella versione 2.0.10 sarà secondo Sam Dark la parte di test rielaborata (e le istruzioni devono essere aggiornate). La versione 2.0.10 dovrebbe essere rilasciata l'11 settembre 2016: https://github.com/yiisoft/yii2/milestones

Come deridere ActiveRecord

Se vuoi prendere in giro AR che non prova a connettersi al database puoi farlo nel modo seguente (se usi 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'
]);

Il problema è che dobbiamo sovrascrivere il metodo attributes () poiché ActiveRecord di default sta ottenendo l'elenco degli attributi dallo schema del database che stiamo cercando di evitare.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow