yii2
Essai
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:
- 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
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.