Comment utiliser l'unité php pour tester phpunit

php中世界最好的语言
Libérer: 2023-03-18 07:38:02
original
1203 Les gens l'ont consulté

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


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, &#39;foo&#39;);
    $this->assertEquals(&#39;foo&#39;, $stack[count($stack) - 1]);
    $this->assertEquals(1, count($stack));
    $this->assertEquals(&#39;foo&#39;, array_pop($stack));
    $this->assertEquals(0, count($stack));
  }
}
?>
Copier après la connexion

Saisissez ensuite la commande suivante sur la ligne de commande :

phpunit yunke
Copier après la connexion

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

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!