Maison > développement back-end > tutoriel php > phpmaster | Commencer avec phpunit

phpmaster | Commencer avec phpunit

Christopher Nolan
Libérer: 2025-03-02 08:33:15
original
483 Les gens l'ont consulté

phpmaster | Getting Started with PHPUnit

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!";
    }
}
Copier après la connexion

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 {
}
Copier après la connexion

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);
    }
}
Copier après la connexion

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");
    }
}
Copier après la connexion

tearDown() décroche l'utilisateur après chaque test:

<?php
...
class UserTest extends PHPUnit_Framework_TestCase {
    ...
    protected function tearDown() {
        unset($this->user);
    }
}
Copier après la connexion

Maintenant, testTalk() simplifie à:

<?php
...
class UserTest extends PHPUnit_Framework_TestCase {
    ...
    public function testTalk() {
        $expected = "Hello world!";
        $actual = $this->user->talk();
        $this->assertEquals($expected, $actual);
    }
}
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal