FAQ SymfonyConsultez toutes les FAQ
Nombre d'auteurs : 17, nombre de questions : 81, dernière mise à jour : 18 juin 2017 Ajouter une question
Les questions redondantes se multipliant sur le forum Symfony, nous avons choisi de créer cette FAQ afin de regrouper les questions qui sont posées fréquemment.
Vos remarques et idées sont les bienvenues. Et pourquoi pas votre aide ! S'il vous prend l'envie de tailler votre plus belle plume et de retrousser vos manches, il y a de quoi faire !
Symfony s'interface nativement avec PHPUnit pour effectuer les tests unitaires.
Sur Symfony 3, il est recommandé d'utiliser la dernière version stable de PHPUnit, la version 4.2
Un test unitaire consiste à tester une classe unique dans votre application Web, basée sur Symfony.
La classe est désignée par le terme « unité ».
Cet exemple porte sur le test de la classe Calculator, situé dans le répertoire src/AppBundle/Util/.
Le code source de la classe Calculator est :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 | // src/AppBundle/Util/Calculator.php namespace AppBundle\Util; class Calculator { public function add($a, $b) { return $a + $b; } } |
Le code source de la classe CalculatorTest doit être :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // tests/AppBundle/Util/CalculatorTest.php namespace Tests\AppBundle\Util; use AppBundle\Util\Calculator; class CalculatorTest extends \PHPUnit_Framework_TestCase { public function testAdd() { $calc = new Calculator(); $result = $calc->add(30, 12); // assert that your calculator added the numbers correctly! $this->assertEquals(42, $result); } } |
Par exemple, si vous avez une classe dans b]src/AppBundle/Util/[/b], la classe de test correspondante doit être dans b]Tests/AppBundle/Util/[/b].
Les tests fonctionnels portent sur les vérifications des différentes couches de votre application, depuis le routage, jusqu'aux vues.
Du point de vue de PHPUnit, ils ne sont pas vraiment différents des tests unitaires, mais ils utilisent un workflow (flux de travail) différent :
- Faire une requête ;
- Tester la response ;
- Cliquer sur un lien ou soumettre un formulaire ;
- Tester la response ;
- Corriger et répéter.
Les tests fonctionnels sont de simples fichiers PHP à stocker dans le répertoire tests/AppBundle/Controller de votre bundle.
Par exemple, si vous voulez exécuter un test fonctionnel sur la classe PostController, il faut créer un nouveau fichier PostControllerTest.php.
La classe à créer est un extends de la classe spéciale WebTestCase :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | // tests/AppBundle/Controller/PostControllerTest.php namespace Tests\AppBundle\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class PostControllerTest extends WebTestCase { public function testShowPost() { $client = static::createClient(); $crawler = $client->request('GET', '/post/hello-world'); $this->assertGreaterThan( 0, $crawler->filter('html:contains("Hello World")')->count() ); } } |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.