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
- Commande :
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()
etloadFixtureFiles()
- Depuis
- 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,