Nous devons d'abord comprendre le concept de test unitaire Les tests unitaires font référence au test des unités de base du logiciel, telles que les fonctions, les méthodes, etc., pour vérifier si leurs valeurs de retour ou les comportements sont comme prévu, mais il est en fait très responsable, car il se compose de nombreux composants et le processus d'exécution est cohérent. Pour tester des fragments unitaires, vous devez fournir un contexte d'exécution (ou des paramètres) et un environnement (comme l'empilage pour simuler certains objets). ) pour courir.
Tests unitaires de php : phpunit
propose des tutoriels détaillés sur son site officiel. Voici quelques contenus supplémentaires.
Tout d'abord, vous devez comprendre que le logiciel phpunit lui-même est implémenté par le langage PHP. Son utilisation se fait via la ligne de commande, et non via le navigateur.
Il est important de comprendre cela. . De nombreux nouveaux arrivants sont coincés ici. C'est très basique et simple, mais il semble que cela n'ait pas été beaucoup mentionné
Après le téléchargement depuis le site officiel, vous obtiendrez un fichier phar. Pour une introduction au fichier d'archive phar, veuillez vous référer au fichier phar. article précédent : Concept et utilisation du format d'archive de développement PHP
Veuillez également télécharger la documentation d'utilisation de phpunit, installez-la selon la méthode d'installation à l'intérieur, puis entrez la commande suivante sur la ligne de commande :
? phpunit --help
S'il s'affiche Lorsque les informations d'aide sont affichées, l'installation est réussie. Créez un scénario de test en tant que yunke.php dans le répertoire actuel de la ligne de commande. suit :
<?php use PHPUnit\Framework\TestCase; class yunkeTest extends TestCase { public function testPushAndPop() { $stack = []; $this->assertEquals(0, count($stack)); array_push($stack, 'foo'); $this->assertEquals('foo', $stack[count($stack) - 1]); $this->assertEquals(1, count($stack)); $this->assertEquals('foo', array_pop($stack)); $this->assertEquals(0, count($stack)); } } ?>
Saisissez ensuite la commande suivante sur la ligne de commande :
phpunit yunke
Le contenu suivant s'affiche :
PHPUnit 5.7.12 by Sebastian Bergmann and contributors. . 1 / 1 (100%) Time: 159 ms, Memory: 7.00MB OK (1 test, 5 assertions)
Félicitations, vous avez réussi lancez un test unitaire. La première ligne contient les informations sur l'auteur (Sebastian Bergmann aime beaucoup être signé)
La deuxième ligne Commençant par un point, cela signifie que tous les tests ont réussi
Vous vous vous demandez peut-être ce qui se passe dans le code php ci-dessus ?
Il s'agit d'un cas de test, qui teste simplement une opération de tableau. Les tests unitaires passent généralement par les quatre étapes suivantes :
1 Le test pour la classe de code de production Class est écrit dans la classe. Test de classe.
2. ClassTest hérite (généralement) de PHPUnitFrameworkTestCase.
3. Les tests sont toutes des méthodes publiques nommées test*. Vous pouvez également marquer une méthode comme méthode de test en utilisant l'annotation @test dans son docblock.
4. Dans la méthode de test, des méthodes d'assertion telles que assertEquals() sont utilisées pour faire des assertions sur la correspondance entre la valeur réelle et la valeur attendue.
Vous pouvez être confus à plusieurs endroits ici :
1. Les annotations utilisées dans le bloc de commentaires peuvent être obtenues par PHP par réflexion, et le programme peut utiliser les informations obtenues pour la configuration
2 . D'où vient la classe TestCase dans le code du scénario de test dans la colonne ci-dessus ? Il n'a pas été chargé ?
Comme mentionné ci-dessus, phpunit lui-même est écrit en langage PHP et emballé dans phar pour être utilisé. phar est exécutable lors de l'exécution, exécutez d'abord le fichier stub dans le package
Vous pouvez suivre l'autre de Yunke ci-dessus. phar post a présenté la méthode pour extraire et restaurer le package phpunit.phar, ou utiliser un IDE comme phpstorm pour l'ouvrir directement
Dans .phar/stub.php vous verrez le code stub, la classe TestCase est The Le code de ligne de commande "phpunit yunke" requis dans le code stub exécutera d'abord le script phpunit, à partir du fichier stub, puis phpunit chargera le code du scénario de test
On peut voir que le programme ne démarre pas à partir de le script du cas de test Exécution commencée, vous comprenez maintenant d'où vient la classe TestCase
Avec le contenu ci-dessus et la documentation officielle du site Web, les novices devraient pouvoir démarrer en douceur
Je le crois Après avoir lu ces cas, vous maîtrisez les méthodes. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web PHP chinois !
Lecture connexe :
php utilise l'environnement de déploiement git
La fonction personnalisée PHP génère un produit cartésien
Mise en place du timing de vente flash de produits PHP (solution au trafic important)
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!