Avec le développement continu de l'industrie du développement de logiciels, de plus en plus de personnes commencent à adopter des méthodes de développement pilotées par les tests (TDD) et de développement agile pour améliorer la qualité des logiciels et l'efficacité du développement. Parmi eux, les tests unitaires sont une méthode de test très importante, qui peut détecter à l'avance les problèmes potentiels dans le code et réduire les coûts de développement et de maintenance.
Dans cet article, nous présenterons comment utiliser PHPUnit et Phake, deux frameworks de tests unitaires PHP populaires, pour les tests unitaires.
1. Introduction à PHPUnit
PHPUnit est un framework de tests unitaires PHP open source populaire créé et maintenu par Sebastian Bergmann. Il prend en charge le développement piloté par les tests et le développement piloté par le comportement, et fournit diverses assertions et fonctions qui peuvent aider les développeurs à rédiger des tests unitaires de haute qualité.
2. Introduction à Phake
Phake est une bibliothèque PHP de simulation d'objets. Elle peut facilement simuler des objets et des comportements PHP. Phake peut être intégré aux frameworks de tests unitaires PHP tels que PHPUnit pour prendre en charge le développement piloté par les tests.
3. Installez PHPUnit et Phake
Avant de commencer les tests unitaires, nous devons d'abord installer PHPUnit et Phake. PHPUnit et Phake peuvent être installés via le gestionnaire de packages Composer.
1. Installez PHPUnit :
Exécutez la commande suivante sur la ligne de commande pour installer PHPUnit :
composer require --dev phpunit/phpunit
2 Installez Phake :
Exécutez la commande suivante sur la ligne de commande pour installer Phake :
composer require --dev phake/phake
4. Code
Dans cet exemple, nous allons écrire une classe PHP pour calculer la somme de deux nombres. Nous testerons ensuite cette classe en utilisant PHPUnit et Phake.
1. Écrivez la classe PHP à tester :
Créez un fichier nommé "Calculator.php" pour stocker la classe PHP que nous voulons tester. Cette classe aura deux méthodes publiques : add($a, $b), utilisée pour calculer la somme de deux nombres.
<?php class Calculator { public function add($a, $b) { return $a + $b; } } ?>
2. Écrivez le code du test unitaire :
Créez un fichier nommé "CalculatorTest.php" et ajoutez le code et les commentaires suivants.
<?php use PHPUnitFrameworkTestCase; require_once 'Calculator.php'; class CalculatorTest extends TestCase { //测试计算两个数字之和的方法 public function testAdd() { //创建一个计算器实例 $calculator = new Calculator(); //使用断言检查$calculator->add()方法的返回值是否为3 $this->assertEquals(3, $calculator->add(1, 2)); } } ?>
3. Utilisez Phake pour simuler des objets
Dans certains cas, vous devrez peut-être simuler un objet PHP afin de tester son comportement. À ce stade, vous pouvez utiliser Phake pour simuler l'objet.
Par exemple, l'exemple de code suivant crée une classe PHP nommée "Mailer", et dans cette classe, nous appelons la méthode Phake::mock() pour créer un objet fictif nommé "Mail".
<?php require_once 'phake/phake.php'; class Mailer { protected $mail; public function __construct() { $this->mail = Phake::mock('Mail'); } public function sendEmail($to, $subject, $body) { $this->mail->send($to, $subject, $body); } } ?>
5. Exécutez les tests unitaires
Après avoir fini d'écrire le code de test, nous devons exécuter tous les tests pour nous assurer que le code peut s'exécuter normalement.
Entrez la commande suivante sur la ligne de commande pour exécuter le test :
./vendor/bin/phpunit CalculatorTest.php
Résultats :
PHPUnit 7.4.1 par Sebastian Bergmann et contributeurs.
1/1 (100%)
Durée : 76 ms, Mémoire. : 4.00MB
OK (1 test, 1 assertion)
Les résultats ci-dessus indiquent que le test a réussi.
6. Résumé
Cet article présente comment utiliser PHPUnit et Phake pour les tests unitaires PHP. Ces outils aident les développeurs à écrire du code de haute qualité et à éviter les problèmes potentiels. Dans le développement réel, nous devons utiliser pleinement ces outils pour améliorer la qualité des logiciels et réduire les coûts de développement et de maintenance.
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!