Maison développement back-end tutoriel php Middleware Laravel : implémenter des tests automatisés et une vérification de la couverture du code

Middleware Laravel : implémenter des tests automatisés et une vérification de la couverture du code

Jul 28, 2023 pm 01:25 PM
laravel 中间件 测试

Middleware Laravel : mettre en œuvre des tests automatisés et une inspection de la couverture du code

Introduction :
Les tests automatisés sont une partie essentielle du processus de développement logiciel. Ils peuvent nous aider à découvrir les problèmes dans le code en temps opportun et à améliorer la qualité du logiciel. Dans le framework Laravel, nous pouvons implémenter des tests automatisés et des vérifications de couverture de code via un middleware. Cet article explique comment utiliser le middleware Laravel pour les tests automatisés et la vérification de la couverture du code, et fournit des exemples de code pertinents.

1. Qu'est-ce que le middleware Laravel ?
Le middleware est un concept central du framework Laravel qui peut exécuter des fonctions n'importe où entre la requête entrant dans l'application et la réponse renvoyée au client. Le middleware est un mécanisme qui filtre les requêtes et les réponses, les modifie ou les traite avant que la requête n'atteigne la route ou après que la réponse soit renvoyée au client. Diverses fonctions peuvent être implémentées à l'aide d'un middleware, telles que l'authentification de routage, la prévention de la falsification de requêtes intersites, etc. Lors des tests automatisés et de la vérification de la couverture du code, nous pouvons utiliser un middleware pour détecter la couverture du code dans les requêtes et les réponses.

2. Tests automatisés
L'utilisation du middleware Laravel pour les tests automatisés peut nous aider à détecter les problèmes dans le code à temps et à garantir l'exactitude du code. Ci-dessous, nous utiliserons un exemple pour présenter comment utiliser le middleware Laravel pour les tests automatisés.

  1. Créer un middleware
    Tout d'abord, nous devons créer un middleware pour les tests automatisés. Utilisez la commande Artisan de Laravel pour créer un middleware :
php artisan make:middleware CodeCoverageMiddleware
Copier après la connexion

Cette commande générera un fichier de classe middleware nommé CodeCoverageMiddleware dans le répertoire app/Http/Middleware. app/Http/Middleware目录下生成一个名为CodeCoverageMiddleware的中间件类文件。

  1. 编辑CodeCoverageMiddleware中间件
    在生成的CodeCoverageMiddleware类文件中,我们可以重写handle方法来实现自动化测试:
namespace AppHttpMiddleware;

use IlluminateSupportFacadesApp;
use IlluminateHttpRequest;

class CodeCoverageMiddleware
{
    public function handle(Request $request, Closure $next)
    {
        if (App::environment('testing')) {
            // 运行代码覆盖率检查
        }

        return $next($request);
    }
}
Copier après la connexion

在上述代码中,我们通过判断应用程序是否处于testing环境下来确定是否运行代码覆盖率检查。

  1. 注册中间件
    完成中间件的编辑后,我们需要将其注册到app/Http/Kernel.php文件中的$middleware数组中:
protected $middleware = [
    // ...
    AppHttpMiddlewareCodeCoverageMiddleware::class,
];
Copier après la connexion

通过以上步骤,我们已经成功创建并注册了一个用于自动化测试的中间件。现在,当应用程序处于testing环境下时,每个请求都会经过这个中间件。

三、代码覆盖率检查
使用Laravel中间件进行代码覆盖率检查可以帮助我们了解哪些代码被测试覆盖到了,以及哪些代码没有被覆盖到。这有助于我们确定需要进行更多测试的代码区域,提高代码的可靠性。下面我们将以一个示例来介绍如何使用Laravel中间件进行代码覆盖率检查。

  1. 安装覆盖率检查工具
    首先,我们需要安装phpunit/php-code-coverage包来实现代码覆盖率检查:
composer require --dev phpunit/php-code-coverage
Copier après la connexion
  1. 编辑CodeCoverageMiddleware中间件
    接下来,我们需要在CodeCoverageMiddleware中间件的handle方法中实现代码覆盖率检查:
namespace AppHttpMiddleware;

use IlluminateSupportFacadesApp;
use IlluminateHttpRequest;
use SebastianBergmannCodeCoverageFilter;
use SebastianBergmannCodeCoverageCodeCoverage;
use SebastianBergmannCodeCoverageReportHTMLFacade as CoverageReporter;

class CodeCoverageMiddleware
{
    public function handle(Request $request, Closure $next)
    {
        if (App::environment('testing')) {
            $filter = new Filter();
            $filter->addFileToWhitelist(base_path());

            $coverage = new CodeCoverage(null, $filter);
            $coverage->start('laravel');

            register_shutdown_function(function () use ($coverage) {
                $coverage->stop();

                CoverageReporter::factory([
                    'target' => storage_path('coverage'),
                ])->process($coverage);
            });
        }

        return $next($request);
    }
}
Copier après la connexion

在上述代码中,我们通过使用phpunit/php-code-coverage包提供的类来实现代码覆盖率检查。在每个请求到来时,我们通过start方法开始代码覆盖率检查,并在应用程序结束时通过stop方法结束检查。然后,我们使用CoverageReporter来生成代码覆盖率报告。

  1. 查看代码覆盖率报告
    完成代码覆盖率检查后,我们可以通过打开浏览器并访问http://your-app-url/storage/coverage/index.html
    1. Modifier le middleware CodeCoverageMiddleware
    Dans le fichier de classe CodeCoverageMiddleware généré, nous pouvons remplacer la méthode handle Pour implémenter tests automatisés :


    rrreee

    Dans le code ci-dessus, nous déterminons s'il convient d'exécuter la vérification de la couverture du code en déterminant si l'application se trouve dans l'environnement testing.

      Enregistrer le middleware

      Après avoir terminé l'édition du middleware, nous devons l'enregistrer dans $middlewareapp/Http/Kernel.php /code>Dans le tableau :

      🎜rrreee🎜Grâce aux étapes ci-dessus, nous avons réussi à créer et à enregistrer un middleware pour les tests automatisés. Désormais, lorsque l'application est dans un environnement de test, chaque requête passera par ce middleware. 🎜🎜3. Vérification de la couverture du code🎜L'utilisation du middleware Laravel pour la vérification de la couverture du code peut nous aider à comprendre quels codes sont couverts par les tests et quels codes ne le sont pas. Cela nous aide à identifier les zones du code qui nécessitent davantage de tests et à améliorer la fiabilité du code. Ci-dessous, nous utiliserons un exemple pour présenter comment utiliser le middleware Laravel pour vérifier la couverture de code. 🎜🎜🎜Installer l'outil de vérification de la couverture🎜Tout d'abord, nous devons installer le package phpunit/php-code-coverage pour implémenter la vérification de la couverture du code : 🎜🎜rrreee
        🎜EditCodeCoverageMiddleware middleware 🎜Ensuite, nous devons implémenter la vérification de la couverture de code dans la méthode handle du middleware CodeCoverageMiddleware : 🎜🎜rrreee🎜Dans le code ci-dessus , nous implémentons la vérification de la couverture du code en utilisant les classes fournies par le package phpunit/php-code-coverage. Lorsque chaque requête arrive, nous démarrons la vérification de la couverture du code via la méthode start, et terminons la vérification via la méthode stop à la fin de l'application. Nous utilisons ensuite CoverageReporter pour générer des rapports de couverture de code. 🎜
          🎜Voir le rapport de couverture du code🎜Après avoir terminé la vérification de la couverture du code, nous pouvons le faire en ouvrant le navigateur et en visitant http://your-app-url/storage/coverage/ index.html pour afficher le rapport de couverture du code. 🎜🎜🎜Conclusion : 🎜Le middleware Laravel nous offre un moyen très pratique de mettre en œuvre des tests automatisés et une vérification de la couverture de code. En créant des classes middleware et en les enregistrant dans l'application, nous pouvons exécuter automatiquement des vérifications de couverture de code dans l'environnement de test et afficher les rapports associés. Cela nous aide à trouver rapidement les problèmes dans le code et à garantir la qualité du code. 🎜🎜En fait, le middleware Laravel peut non seulement être utilisé pour des tests automatisés et la vérification de la couverture de code, mais peut également être utilisé pour implémenter de nombreuses autres fonctions, telles que la journalisation, le filtrage des requêtes, etc. Il est très important que les développeurs maîtrisent l’utilisation du middleware. 🎜🎜J'espère que cet article pourra aider les lecteurs à mieux comprendre le middleware Laravel et comment l'utiliser pour mettre en œuvre des tests automatisés et une vérification de la couverture de code. Chacun peut utiliser le middleware de manière flexible en fonction de ses propres besoins et des conditions réelles pour améliorer l'efficacité du développement logiciel et la qualité du code. 🎜

    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!

    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

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    Video Face Swap

    Video Face Swap

    Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

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

    Comment obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Comment obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Apr 01, 2025 pm 02:45 PM

    Méthode pour obtenir le code de retour lorsque l'envoi par e-mail de Laravel échoue. Lorsque vous utilisez Laravel pour développer des applications, vous rencontrez souvent des situations où vous devez envoyer des codes de vérification. Et en réalité ...

    La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? Mar 31, 2025 pm 11:24 PM

    Laravel Schedule Tâche d'exécution de dépannage non réactif Lorsque vous utilisez la planification des tâches de calendrier de Laravel, de nombreux développeurs rencontreront ce problème: Schedule: Exécuter ...

    Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Mar 31, 2025 pm 11:48 PM

    La méthode de traitement de l'échec de l'e-mail de Laravel à envoyer le code de vérification est d'utiliser Laravel ...

    Comment implémenter la fonction de table personnalisée de clic pour ajouter des données dans l'administrateur DCAT? Comment implémenter la fonction de table personnalisée de clic pour ajouter des données dans l'administrateur DCAT? Apr 01, 2025 am 07:09 AM

    Comment implémenter la fonction du tableau de Cliquez sur personnalisé pour ajouter des données dans DCATADMIN (Laravel-Admin) lors de l'utilisation de DCAT ...

    Laravel - Serveur de vidage Laravel - Serveur de vidage Aug 27, 2024 am 10:51 AM

    Laravel - Dump Server - Le serveur de dump Laravel est livré avec la version de Laravel 5.7. Les versions précédentes n'incluent aucun serveur de dump. Le serveur de vidage sera une dépendance de développement dans le fichier laravel/laravel composer.

    Partage de connexion Laravel Redis: pourquoi la méthode de sélection affecte-t-elle d'autres connexions? Partage de connexion Laravel Redis: pourquoi la méthode de sélection affecte-t-elle d'autres connexions? Apr 01, 2025 am 07:45 AM

    L'impact du partage des connexions redis dans Laravel Framework et sélectionnez Méthodes Lors de l'utilisation de Laravel Framework et Redis, les développeurs peuvent rencontrer un problème: grâce à la configuration ...

    Laravel Multi-Lenant Extension Stancl / Tenancy: Comment personnaliser l'adresse hôte d'une connexion de base de données de locataire? Laravel Multi-Lenant Extension Stancl / Tenancy: Comment personnaliser l'adresse hôte d'une connexion de base de données de locataire? Apr 01, 2025 am 09:09 AM

    Connexion de la base de données des locataires personnalisés dans le package d'extension multi-locataire Laravel Stancl / location Lors de la construction d'applications multi-locataires à l'aide du package d'extension multi-locataire Laravel Stancl / location, ...

    Laravel – URL de l'action Laravel – URL de l'action Aug 27, 2024 am 10:51 AM

    Laravel - URL d'action - Laravel 5.7 introduit une nouvelle fonctionnalité appelée « URL d'action appelable ». Cette fonctionnalité est similaire à celle de Laravel 5.6 qui accepte la méthode string in action. L'objectif principal de la nouvelle syntaxe introduite par Laravel 5.7 est de diriger

    See all articles