Maison  >  Article  >  cadre php  >  Développement Laravel : Comment utiliser Laravel Testing pour des tests de bout en bout ?

Développement Laravel : Comment utiliser Laravel Testing pour des tests de bout en bout ?

王林
王林original
2023-06-14 22:37:261632parcourir

Laravel est un framework PHP populaire qui fournit une infrastructure puissante et des fonctionnalités prêtes à l'emploi pour les applications Web. L'un d'eux est Laravel Testing, qui fournit un mécanisme de test rapide de bout en bout pour les applications Laravel. Dans cet article, nous apprendrons comment utiliser Laravel Testing pour des tests de bout en bout.

Pourquoi des tests de bout en bout sont-ils nécessaires ?

Dans le processus de développement logiciel, les tests sont un élément important pour garantir la qualité des logiciels. Dans les applications Web, les tests de bout en bout constituent la dernière étape du test et l'étape d'acceptation finale. Les tests de bout en bout sont généralement complétés par des scripts de test automatisés pour simuler les opérations réelles des utilisateurs et tester si l'application Web peut fonctionner correctement.

Utilisez des tests de bout en bout pour :

  • Déterminer si l'application fonctionne comme prévu Réactivité
  • Capturer les bugs et les erreurs# 🎜🎜#
  • Bases des tests Laravel
Laravel Testing est la bibliothèque de tests fournie avec le framework Laravel. Elle fournit de nombreuses méthodes et outils pour écrire des tests et simuler des interactions utilisateur réelles. .

Dans Laravel Testing, vous pouvez créer des classes de test et utiliser PHPUnit pour les tests. LaravelTesting fournit des extensions de fonctionnalités supplémentaires à PHPUnit qui vous facilitent l'utilisation des fonctionnalités de l'application Laravel, telles que l'accès aux itinéraires et aux pages.

Lorsque nous utilisons Laravel Testing pour des tests de bout en bout, nous utilisons principalement les composants suivants :

Browser Testing Component (BrowserKit Testing) : permet de simuler Requêtes HTTP et réponse pour tester si l'application Web peut répondre correctement.

    Queued Testing : permet de tester les fonctions de file d'attente de Laravel pour garantir qu'elles s'exécutent correctement.
  • Écrire un test de bout en bout
Dans cette section, nous allons écrire un test simple de bout en bout pour tester la fonctionnalité du landing page et page d'inscription.

Preparation

Tout d'abord, nous devons installer les bibliothèques PHPUnit et Laravel Testing. Nous pouvons réaliser ces opérations en utilisant Composer.

Entrez la commande suivante dans la fenêtre du terminal pour terminer l'installation de PHPUnit :

composer require --dev phpunit/phpunit

Ensuite, nous pouvons utiliser la commande suivante pour installer la bibliothèque Laravel Testing : #🎜🎜 #
composer require --dev orchestra/testbench-browser-kit
#🎜🎜 #Une fois l'installation terminée, nous pouvons commencer à écrire des tests.

Écriture de tests

Créer une classe TestCase

Nous allons créer une classe TestCase et en hériter de la classe Laravel afin de pouvoir utiliser la fonction de test de Laravel . Entrez la commande suivante dans la fenêtre du terminal :

php artisan make:test EndToEndExampleTest

Cette commande créera un fichier EndToEndExampleTest.php dans le répertoire /tests/. Remplacez le contenu de l'intégralité du fichier par l'exemple de code suivant :

<?php

namespace TestsFeature;

use IlluminateFoundationTestingRefreshDatabase;
use LaravelBrowserKitTestingTestCase as BaseTestCase;

abstract class EndToEndTestCase extends BaseTestCase
{
    use CreatesApplication;
}

Create Test

Avant de commencer à écrire des tests, nous devons nous assurer que l'application Laravel est en cours d'exécution. Nous pouvons démarrer notre application en utilisant la commande suivante :

php artisan serve

Maintenant, nous pouvons écrire un test qui teste la fonctionnalité de connexion et d'enregistrement. Dans la classe de test EndToEndExampleTest, ajoutez la méthode de test suivante :

public function testUserRegistration()
{
    $this->browse(function ($browser) {
        // 访问登陆页面
        $browser->visit('/login')
                ->assertSee('Login')
                ->assertSee('Email')
                ->assertSee('Password');
                
        // 注册新用户
        $browser->visit('/register')
                ->type('name', 'John Doe')
                ->type('email', 'johndoe@example.com')
                ->type('password', 'password')
                ->type('password_confirmation', 'password')
                ->press('Register')
                ->assertPathIs('/home');
                
        // 退出登录
        $browser->click('#navbarDropdown')
                ->assertSee('Logout')
                ->clickLink('Logout')
                ->assertPathIs('/');
    });
}

Dans le test ci-dessus, nous utilisons le composant de test du navigateur de Laravel Testing pour simuler les opérations des utilisateurs. Nous visitons la page de connexion, soumettons le formulaire de connexion, puis visitons la page d'inscription pour créer un nouvel utilisateur et enfin nous déconnectons. Nous vérifions que le résultat est comme prévu et que le chemin et l'emplacement demandés sont corrects.

Nous pouvons exécuter le test en utilisant la commande suivante :

php artisan test --testsuite=Feature

Une fois l'exécution terminée, la console affichera les résultats du test.

Summary

Laravel Testing est la bibliothèque de tests fournie avec le framework Laravel. Elle fournit des outils de test de bout en bout simples et conviviaux et des extensions fonctionnelles, ce qui facilite la tâche. nous pour écrire et exécuter des scripts de test. Dans cet article, nous avons appris à utiliser Laravel Testing pour les tests de bout en bout et avons démontré comment utiliser Laravel Testing pour les tests de navigateur en créant un test de connexion et d'enregistrement de base. En pratique, vous pouvez personnaliser vos tests selon vos besoins et valider différents aspects de votre application.

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:
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