Recherche…


Configurer l'environnement de test

Installez Codeception:

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

Installer Faker:

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

Créez une base de données qui ne sera utilisée que pour les tests. Vous pouvez dupliquer la base de données existante ou appliquer des migrations:

cd tests
codeception/bin/yii migrate

Ajustez la configuration des components['db'] dans tests/codeception/config/config-local.php .

Ajoutez le répertoire /var/www/yii/vendor/bin à votre chemin.

Examinez tous les fichiers de configuration et .yml .

Démarrez le serveur Web, par exemple:

php -S localhost:8080

Exécutez les tests:

codecept run

Plus d'information:

Remarque: Ces instructions sont valables pour la version Yii2 2.0.9. Dans la version 2.0.10 sera selon Sam Dark la partie de test re-factorisée (et les instructions doivent être mises à jour). La version 2.0.10 devrait être publiée le 11 septembre 2016: https://github.com/yiisoft/yii2/milestones

Comment se moquer d'ActiveRecord

Si vous voulez simuler l'AR qui n'essaie pas de vous connecter à la base de données, vous pouvez le faire de la manière suivante (si vous utilisez 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'
]);

Le problème est que nous devons remplacer la méthode attributes () car ActiveRecord obtient par défaut la liste des attributs du schéma de base de données que nous essayons d'éviter.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow