Ce tutoriel est obsolète. Pour une introduction actuelle à Phpunit, veuillez vous référer à notre guide mis à jour récemment publié.
Les tests de sites Web automatisés sont cruciaux pour un développement efficace. Le test d'unité rationalise ce processus, empêchant les bogues introduits par les mises à jour de code. Cet article fournit une compréhension fondamentale du phpunit, vous guidant à travers votre premier test unitaire.
Avant de commencer, assurez-vous que le phpunit est installé. Les instructions sont disponibles dans le manuel PHPUnit à https://www.php.cn/link/991c0955da231335e4864d3389698fd5 .
Création de votre premier test
Nous commencerons par une simple classe PHP représentant un utilisateur:
<?php class User { protected $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } public function talk() { return "Hello world!"; } }
Pour tester la salutation de l'utilisateur, nous créons une classe de test, UserTest
. Les noms de classe de test reflètent généralement les classes testées. La classe de test comprend la classe testée et la mise en œuvre de PHPUnit:
<?php require_once "PHPUnit/Autoload.php"; require_once "User.php"; class UserTest extends PHPUnit_Framework_TestCase { }
Chaque test est une méthode dans cette classe. Nous utilisons assertEquals()
pour vérifier la salutation:
<?php ... class UserTest extends PHPUnit_Framework_TestCase { public function testTalk() { $user = new User(); $expected = "Hello world!"; $actual = $user->talk(); $this->assertEquals($expected, $actual); } }
en utilisant des luminaires phpunit
La configuration à plusieurs reprises d'objets dans chaque méthode de test est inefficace. Les appareils phpunit établissent un état avant chaque test et le réinitialisent par la suite. Nous remplacerons setUp()
pour créer et initialiser l'utilisateur:
<?php ... class UserTest extends PHPUnit_Framework_TestCase { protected $user; protected function setUp() { $this->user = new User(); $this->user->setName("Tom"); } }
tearDown()
décroche l'utilisateur après chaque test:
<?php ... class UserTest extends PHPUnit_Framework_TestCase { ... protected function tearDown() { unset($this->user); } }
Maintenant, testTalk()
simplifie à:
<?php ... class UserTest extends PHPUnit_Framework_TestCase { ... public function testTalk() { $expected = "Hello world!"; $actual = $this->user->talk(); $this->assertEquals($expected, $actual); } }
exécuter vos tests
Exécutez des tests à partir du terminal en utilisant phpunit
. UN "." Indique un test réussi, tandis que "F" signifie l'échec. D'autres caractères représentent des erreurs, des tests sautés ou des tests incomplets.
Échecs de test de gestion
Modification de la classe User
pour retourner "blubb" au lieu de "Hello World!" provoquera l'échec du test, fournissant des informations d'erreur détaillées.
Conclusion
Cette introduction démontre la simplicité du phpunit. Explorer davantage ses capacités; Expérimentez, apprenez des erreurs et consultez le manuel PHPUNIT pour les techniques avancées et les méthodes d'assertion. Le code fourni (disponible sur GitHub) utilise le compositeur pour la gestion des dépendances; L'instruction require
doit appeler vendor/autoload.php
. Exécutez des tests à partir du répertoire tests
en utilisant ../vendor/bin/phpunit UnitTest UserTest.php
.
Image via des archipques / shutterstock
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!