Tester sur Symfony - Partie 1

Présentation

Cette page correspond à ma prise de notes suite au suivi de formation Tester sur Symfony présent sur l’excellent site GrafiKart.

Chapitre 1 - Introduction et configuration

Le lien.

Prise de notes:

  • La commande d’initialisation du projet composer create-project symfony/website-skeleton TutoTestSymfony 4.3.99
  • La commande pour lancer phpunit : php bin/phpunit
    • Je suis en 7.5.20,
  • Le nom des classes doit finir par Test mais le nom des méthodes doit commencer par test,
  • Différents types de classes de base :
    • TestCase : Depuis PhpUnit, pour les tests unitaires,
    • KernelTestCase : Depuis Symfony\FrameWorkBundle, pour les tests fonctionnels,
    • WebTestCase : Depuis Symfony\FrameWorkBundle, pour le tests des contrôleurs ou dans sa globalité.

Chapitre 2 - Tester avec une base de données

Le lien.

Prise de notes :

  • DoctrineFixturesBundle : lien,
    • Commande : composer require --dev orm-fixtures
  • self::$container : dans une classe étendant KernelTestCase, permet de récupérer un “container” spécifique pour les tests (un peu adapté par rapport au container standard),
  • LiipTestFixturesBundle : lien,
    • Permet de charger au niveau du test, les différentes fixtures nécessaires,
    • Commande : composer require --dev orm-fixtures liip/test-fixtures-bundle:^1.0.0,
    • “Activation” dans le code : use FixturesTrait;
      • Depuis Liip\TestFixturesBundle\Test\FixturesTrait;
      • Permet d’avoir accès à loadFixtures() et loadFixtureFiles()
  • Mise en place du cache :
    • Execution avec MySQL : 200 ms,
    • Première exécution avec SQLite + Cache : 2.1 sec,
    • Deuxième exécution avec SQLite + Cache : 214ms,
    • A valider avec plus de tests évidemment …

Chapitre 3 - Tester une entité

Le lien.

Prise de notes :

  • Filtre : php bin/phpunit --filter InvitationCodeTest
  • Ajout de message : dans les tests, chaque assertion contient un message qui décrit la règle associée,
    • Il le fait à la fin,