


Créez des applications sans bugs à l'aide des tests unitaires Laravel
Jan 03, 2025 am 05:43 AMBonjour Artisan,
Les tests font partie du développement logiciel. Cela garantit que votre application fonctionne comme prévu. Laravel offre un bon support pour les tests et il a été con?u en pensant aux tests. Il fournit Pest et PHPUnit pour les tests.
Une fois que vous avez installé une application Laravel, vous pouvez voir phpunit.xml déjà disponible dans votre application. Par défaut, l'application contient deux répertoires distincts dans le répertoire de test, l'un pour les fonctionnalités et l'autre pour l'unité. L'unité est une partie plus petite et isolée de votre application tandis que la fonctionnalité est utilisée pour tester une plus grande partie de vos applications.
Dans cet article de blog, nous explorerons comment écrire des tests à l'aide de PHPUnit et comment les intégrer à votre application Laravel.
Pourquoi les tests unitaires sont importants??
Avant d'entrer dans les détails, comprenons rapidement pourquoi les tests unitaires sont importants?:
Qualité du code?: Les tests détectent les bugs dès le début du jeu, ne risquant ainsi pas qu'ils entrent en production.
Refactoring Confidence?: Les tests vous permettent de refactoriser en toute confiance car vous n'avez pas peur de casser des fonctionnalités.
Documentation?: les tests agissent comme une documentation vivante pour le comportement de votre code.Collaboration?: Elles servent de filet de sécurité pour les équipes?: elles ne permettent pas que de nouveaux changements perturbent les fonctionnalités existantes.
Avant de commencer à rédiger les cas de test, assurez-vous d'avoir installé l'application Laravel.
L'environnement de développement est mis en place?: Créez un fichier .env.testing dans le répertoire racine de votre projet. Ce fichier est utilisé à la place du fichier .env lorsque vous exécutez des tests PHPUnit ou exécutez des commandes Artisan avec l'option --env=testing.
Vérifiez la configuration de PHPUnit?: Vérifiez le fichier phpunit.xml à la racine de votre projet. Ce fichier configure _PHPUnit_ pour votre application Laravel.
Exécuter les tests par défaut?: Laravel inclut quelques exemples de tests. Vous pouvez les exécuter en utilisant?:
php artisan test
Cette commande exécute tous les tests du répertoire tests.
Alors commen?ons à écrire votre premier test unitaire
Fonction?: Pour tester des parties plus importantes de votre application, impliquant souvent des requêtes HTTP.
Unité?: Pour tester des classes et des méthodes individuelles.
écrivons un test unitaire simple?:
1. Créer un fichier de test
Utilisez Artisan pour générer un fichier de test?:
php artisan make:test SumOfTwoNumberTest --unit
Cela créera tests/Unit/SumOfTwoNumberTest.php.
2. écrivez un cas de test
Ouvrez le fichier de test nouvellement créé et ajoutez votre logique de test?:
<?php namespace Tests\Unit; use PHPUnit\Framework\TestCase; class SumOfTwoNumberTest extends TestCase { /** * A basic unit test example. * * @return void */ public function test_addition() { $sum = 2 + 2; $this->assertEquals(4, $sum); } }
3. Exécutez le test
Exécutez votre test en utilisant?:
php artisan test
Vous pouvez également utiliser la commande test Artisan pour exécuter vos tests. Cette commande fournit des rapports de test détaillés pour faciliter le processus de développement et de débogage.
php artisan make:test SumOfTwoNumberTest --unit
Vous devriez voir une sortie indiquant si le test a réussi ou échoué.
- Test d'un modèle Laravel
Créons un test unitaire pour une méthode de modèle Laravel. Supposons que nous ayons un modèle utilisateur avec une méthode getFullName?:
1. Méthode modèle
Ajoutez la méthode à votre modèle utilisateur?:
<?php namespace Tests\Unit; use PHPUnit\Framework\TestCase; class SumOfTwoNumberTest extends TestCase { /** * A basic unit test example. * * @return void */ public function test_addition() { $sum = 2 + 2; $this->assertEquals(4, $sum); } }
2. Créer le test
Générer un fichier de test?:
./vendor/bin/phpunit
Modifiez le fichier de test pour tester la méthode getFullName?:
php artisan test
3. Exécuter le test
Faire le test?:
public function getFullName(): string { return $this->first_name .' '. $this->last_name; }
Vous devriez voir un message de réussite si la méthode fonctionne comme prévu.
- écrire un test de fonctionnalité
Les tests de fonctionnalités dans Laravel vous permettent de tester des parties plus importantes de votre application, telles que les routes, les contr?leurs et le middleware.
écrivons un exemple de test de fonctionnalité pour une page de connexion.
1. Générer un test de fonctionnalités
Utilisez Artisan pour créer un nouveau test de fonctionnalité?:
php artisan make:test UserTest --unit
Cela créera tests/Feature/LoginTest.php.
2. écrivez la logique du test
Ouvrez le fichier LoginTest.php et ajoutez le code ci-dessous?:
<?php namespace Tests\Unit; use App\Models\User; use PHPUnit\Framework\TestCase; class UserTest extends TestCase { public function test_get_full_name() { $user = new User(); $user->first_name = 'John'; $user->last_name = 'Doe'; $this->assertEquals('John Doe', $user->getFullName()); } }
3. Exécutez le test des fonctionnalités
php artisan test
Le résultat indiquera si la page de connexion est accessible et si l'utilisateur peut se connecter avec succès.
Quelques bonnes pratiques pour écrire des tests unitaires dans Laravel
Noms descriptifs des tests?: Les noms des tests doivent être très descriptifs de ce qui est testé.
Testez une chose à la fois?: Chaque test ne doit tester qu'une seule fonctionnalité ou un seul comportement.
Utilisez des usines et des seeders?: Utilisez les usines et les seeders modèles de Laravel pour créer des données de test.
Isoler les tests?: Les tests unitaires ne doivent pas dépendre de services externes tels qu'une base de données ou une API. Utilisez des simulations et des talons si nécessaire.
Vous pouvez consulter la documentation de Laravel pour plus de détails.
Conclusion?:
Les tests unitaires et de fonctionnalités dans Laravel sont des moyens puissants de maintenir la qualité du code et de garantir un comportement robuste des applications. Avec PHPUnit, écrire et exécuter des tests est un moyen simple et efficace. En intégrant des tests dans votre processus de développement, vous créerez des applications plus fiables et plus maintenables.
Bonne lecture !!
Bon codage !!
?? ?
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les problèmes et les solutions courants pour la portée de la variable PHP incluent: 1. La variable globale ne peut pas être accessible dans la fonction, et elle doit être transmise en utilisant le mot-clé ou le paramètre global; 2. La variable statique est déclarée avec statique, et elle n'est initialisée qu'une seule fois et la valeur est maintenue entre plusieurs appels; 3. Des variables hyperglobales telles que $ _get et $ _post peuvent être utilisées directement dans n'importe quelle portée, mais vous devez faire attention au filtrage s?r; 4. Les fonctions anonymes doivent introduire des variables de portée parents via le mot clé Utiliser, et lorsque vous modifiez les variables externes, vous devez passer une référence. La ma?trise de ces règles peut aider à éviter les erreurs et à améliorer la stabilité du code.

Pour gérer en toute sécurité les téléchargements de fichiers PHP, vous devez vérifier la source et taper, contr?ler le nom et le chemin du fichier, définir les restrictions du serveur et traiter les fichiers multimédias deux fois. 1. Vérifiez la source de téléchargement pour empêcher le CSRF via le jeton et détecter le type de mime réel via FINFO_FILE en utilisant le contr?le de liste blanche; 2. Renommez le fichier à une cha?ne aléatoire et déterminez l'extension pour la stocker dans un répertoire non Web en fonction du type de détection; 3. La configuration PHP limite la taille de téléchargement et le répertoire temporaire Nginx / Apache interdit l'accès au répertoire de téléchargement; 4. La bibliothèque GD résait les images pour effacer des données malveillantes potentielles.

Il existe trois méthodes courantes pour le code de commentaire PHP: 1. Utiliser // ou # pour bloquer une ligne de code, et il est recommandé d'utiliser //; 2. Utiliser /.../ pour envelopper des blocs de code avec plusieurs lignes, qui ne peuvent pas être imbriquées mais peuvent être croisées; 3. Compétences combinées Commentaires tels que l'utilisation / if () {} / pour contr?ler les blocs logiques, ou pour améliorer l'efficacité avec les touches de raccourci de l'éditeur, vous devez prêter attention aux symboles de fermeture et éviter les nidification lorsque vous les utilisez.

AgeneratorInphpisamemory-EfficientwaytoterateOrgedatasetsByyieldingValuesonEatatimeIntedofreturningThemallAtonce.1.GeneratorsUsEtheieldKeywordToproduceValuesondemand, ReducingMemoryUsage.2.TheyAreusefulForHandlingBigloops, ReadingLargeFiles, OR OR.

La clé pour rédiger des commentaires PHP est de clarifier l'objectif et les spécifications. Les commentaires devraient expliquer "pourquoi" plut?t que "ce qui a été fait", en évitant la redondance ou trop de simplicité. 1. Utilisez un format unifié, tel que DocBlock (/ * /) pour les descriptions de classe et de méthode afin d'améliorer la lisibilité et la compatibilité des outils; 2. Soulignez les raisons de la logique, telles que pourquoi les sauts JS doivent être sortis manuellement; 3. Ajoutez une description d'une vue d'ensemble avant le code complexe, décrivez le processus dans les étapes et aidez à comprendre l'idée globale; 4. Utilisez TODO et FIXME Rationalement pour marquer des éléments et des problèmes de taches pour faciliter le suivi et la collaboration ultérieurs. De bonnes annotations peuvent réduire les co?ts de communication et améliorer l'efficacité de la maintenance du code.

En PHP, vous pouvez utiliser des crochets ou des accolades bouclées pour obtenir des caractères d'index spécifiques à la cha?ne, mais les crochets sont recommandés; L'index commence à partir de 0 et l'accès à l'extérieur de la plage renvoie une valeur nulle et ne peut pas se voir attribuer une valeur; MB_substr est nécessaire pour gérer les caractères multi-octets. Par exemple: $ str = "Hello"; echo $ str [0]; sortie h; et les caractères chinois tels que MB_substr ($ str, 1,1) doivent obtenir le résultat correct; Dans les applications réelles, la longueur de la cha?ne doit être vérifiée avant le boucle, les cha?nes dynamiques doivent être vérifiées pour la validité et les projets multilingues recommandent d'utiliser des fonctions de sécurité multi-octets uniformément.

Toinstallphpquickly, usexAmpPonWindowsorHomebrewonMacos.1.onwindows, downloadAndInstallxAmppp, selectComponents, startapache et placefilesInhtdocs.2.

Toléarnphpeffective, startBySettingUpAlocalServerERironmentUsingToolsLILYXAMPPANDACODEDITERLIGHILLEVSCODE.1) INSTRUSITIONXAMPFORAPACHE, MYSQL, ANDPHP.2) USACODEDEDITORFORSYNTAXSUPPORT.3)
