La passion du libre

Le guide complet de Yii 2 (traduction du guide officiel)

Cliquez sur le bouton pour afficher les conseils de lecture.Cliquez à nouveau pour les masquer

Fenêtres surgissantes explicatives

Certains mots dans le texte, affichés en vert et en gras, sont précédés d'une étoile verte sur fond orange. Par exemple, ce mot : lien.

Si vous placez le pointeur de la souris sur un tel mot, une fenêtre surgissante – popup – s'ouvre alors que l'affichage du reste du documment s'atténue. Cette fenêtre contient une explication détaillée du mot en question

Une fois que vous avez pris connaissance de ce que vous affiche cette fenêtre surgissante, vous pouvez retourner à l'état normal en cliquant ailleurs dans le document.

Navigation

Pour naviguer, utilisez le menu vertical à gauche du texte. Les entrées de menu marquées d'une petite flèche vers le bas ouvrent un sous-menu lorsqu'on clique dessus.

Vous pouvez également choisir une lecture continue en cliquant sur un des liens proposés en bas de page.

Tests

L'application avancée de Yii2 utilise Codeception en tant que structure de base de test primaire. Il existe déjà quelques échantillons de tests préparés dans le dossier tests des dossiers frontend, backend et common. Pour que la procédure suivante fonctionne, on suppose que l'application a été initialisée en utilisant l'environnement dev. Dans le cas où les tests doivent être exécutés dans l'environnement production, les fichiers yii_test et yii_test.bat doivent être copiés manuellement du dossier environnements/dev vers le dossier racine du projet. Les tests nécessitent une base de données additionnelle, qui sera vidée entre les tests. Créez une base de données yii2advanced_test avec mysql (en accord avec la configuration dans common/config/test.php) et exécutez :

./yii_test migrate

Construisez la suite de tests :

vendor/bin/codecept build

Ensuit, tous les échantillons de test peuvent être lancés en exécutant :

vendor/bin/codecept run

La sortie devrait ressembler à ceci :

Il est recommandé de maintenir les tests à jour. Si une classe, ou une fonctionnalité, est effacée, les tests correspondant doivent l'être également. Vous devriez exécuter les tests régulièrement, ou mieux, configurer l'intégration continue au serveur pour eux.

Reportez-vous à Étude de cas Yii2 Framework pour savoir comment configurer Codeception pour votre application.

Common (communs)

Les tests pour les classes partagées sont situées dans common/tests. Dans ce modèle, il s'agit unitquement de tests unitaires (unit). Lancez-les en exécutant :

vendor/bin/codecept run -- -c common

L'option -c permet de définir le chemin vers la configuration codeception.yml.

La suite de tests unitaires (unit) (située dans common/tests/unit) peut utiliser les fonctionnalités de Yii framework : Yii::$app, l'enregistrement actif (ActiveRecord), les environnement prédéfinis (fixtures), etc. Cela est effectif parce que le module Yii2 est activé dans la configuration des tests unitaires : common/tests/unit.suite.yml. Vous pouvez le désactiver pour exécuter les tests en isolation totale.

Interface utilisateur (frontend)

Les tests de l'interface utilisateur contiennent des tests unitaires, fonctionnels et d'acceptation. Exécutez-les avec :

vendor/bin/codecept run -- -c frontend

Description des suites de tests :

  • unit ⇒ classes relatives à l'application interface utilisateur seulement.
  • functional ⇒ requêtes/réponses internes de l'application (sans serveur web).
  • acceptance ⇒ application web, interface utilisateur et interactions javascript dans le navigateur réel.

Les tests d'acceptation sont désactivés par défaut. Pour les utiliser exécutez ce qui suit.

Exécutiton des tests d'acceptation

Pour exécuter les tests d'acceptation suivez les étapes ci-dessous :

  1. Renommez frontend/tests/acceptance.suite.yml.example en frontend/tests/acceptance.suite.yml pour activer la configuration de la suite

  2. Remplacez le paquet codeception/base dans composer.json par codeception/codeception pour installer une version complète de Codeception

  3. Mettez les dépendances à jour avec Composer

    composer update  
    
  4. Auto-générez les nouvelles classes pour la prise en charge des tests d'acceptation :

    vendor/bin/codecept build -- -c frontend
    
  5. Téléchargez Selenium Server et lancez-le :

    java -jar ~/selenium-server-standalone-x.xx.x.jar
    
  6. Démarrez le serveur Web :

    php -S 127.0.0.1:8080 -t frontend/web
    
  7. Maintenant, vous pouvez exécuter tous les tests disponibles :

    vendor/bin/codecept run acceptance -- -c frontend
    

Interface d'administration (backend)

L'application interface d'administration contient les suites de tests unitaires et fonctionnels. Exécutez-les avec :

vendor/bin/codecept run -- -c backend