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

王林
Libérer: 2023-07-28 13:56:01
original
966 Les gens l'ont consulté

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éCodeCoverageMiddlewaredans le répertoireapp/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 CodeCoverageMiddlewaregénéré, nous pouvons remplacer la méthode handlePour 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 :

      rrreeeGrâ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 codeL'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 couvertureTout d'abord, nous devons installer le package phpunit/php-code-coveragepour 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 handledu middleware CodeCoverageMiddleware: rrreeeDans 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 CoverageReporterpour générer des rapports de couverture de code.
          Voir le rapport de couverture du codeAprè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.htmlpour 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!

    É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
    Derniers articles par auteur
    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!