Maison > développement back-end > tutoriel php > Créez des applications sans bugs à l'aide des tests unitaires Laravel

Créez des applications sans bugs à l'aide des tests unitaires Laravel

Linda Hamilton
Libérer: 2025-01-03 05:43:40
original
433 Les gens l'ont consulté

Build Bug-Free Applications using Laravel Unit Testing

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

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

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

3. Exécutez le test

Exécutez votre test en utilisant :

php artisan test
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

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

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

2. Créer le test

Générer un fichier de test :

./vendor/bin/phpunit
Copier après la connexion

Modifiez le fichier de test pour tester la méthode getFullName :

php artisan test
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

3. Exécuter le test

Faire le test :

public function getFullName(): string
{
    return $this->first_name .' '. $this->last_name;
}
Copier après la connexion

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

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

3. Exécutez le test des fonctionnalités

php artisan test
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

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!

source:dev.to
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