Maison  >  Article  >  cadre php  >  Développement Laravel : Comment utiliser Laravel Testing pour des tests unitaires efficaces ?

Développement Laravel : Comment utiliser Laravel Testing pour des tests unitaires efficaces ?

WBOY
WBOYoriginal
2023-06-14 08:38:421647parcourir

Développement Laravel : Comment utiliser Laravel Testing pour des tests unitaires efficaces ?

Laravel est un framework leader pour le développement PHP. Il est apprécié par la majorité des développeurs PHP en raison de sa facilité d'apprentissage, de sa facilité d'utilisation et de ses fonctions complètes. Pendant le processus de développement, les tests sont cruciaux car de bons tests améliorent la qualité et la stabilité de l'application.

Le framework Laravel intègre un outil de test Laravel, qui peut aider les développeurs à rédiger rapidement des tests unitaires efficaces. Cet article explique comment utiliser Laravel Testing pour des tests unitaires efficaces.

Pourquoi les tests unitaires ?

Dans le processus de développement, les tests unitaires sont un maillon très important. Ils peuvent aider les développeurs à :

  • Garantir la qualité du code : les tests peuvent détecter les erreurs et les problèmes de code, permettant aux développeurs de résoudre les problèmes en temps opportun et de garantir la qualité du code.
  • Améliorer la couverture du code : les tests peuvent aider les développeurs à améliorer la couverture du code pour garantir que les tests couvrent tous les aspects de l'application.
  • Confirmer le comportement du code : les tests peuvent aider les développeurs à confirmer le comportement du code et à garantir que la logique du code est correcte.

L'utilisation des tests unitaires peut réduire considérablement le risque de problèmes dans le développement du code et améliorer la qualité et la stabilité du code.

Avantages de l'utilisation de Laravel Testing pour les tests unitaires

Afin d'effectuer des tests unitaires, les développeurs doivent utiliser un framework de test pour garantir le fonctionnement normal des cas de test et détecter rapidement les problèmes et les erreurs. Laravel Testing est un framework de test très populaire dans le framework Laravel. Le framework présente les avantages suivants :

  • Facile à utiliser : Laravel Testing possède une interface API simple et intuitive, permettant aux développeurs d'écrire et d'exécuter rapidement des cas de test.
  • Framework Laravel intégré : Laravel Testing est intégré au framework de test intégré au framework Laravel, afin que les développeurs puissent profiter de ses puissantes fonctionnalités. Il utilise les méthodes de base du framework Laravel, créant ainsi. ils ont une bonne interactivité.
  • Largement utilisé : Laravel est un framework largement utilisé avec un grand groupe d'utilisateurs et une communauté qui fournit de nombreuses ressources précieuses telles que de la documentation et des informations.

La structure de base de Laravel Testing

Avant d'écrire des cas de test, vous devez comprendre la structure de base de Laravel Testing. Les cas de test Laravel, comme les autres composants Laravel, constituent également une classe. Cette classe doit hériter de la classe PHPUnitFrameworkTestCase et avoir accès à divers services du framework Laravel. Par exemple, si vous devez accéder aux commandes de la console pendant les tests, vous pouvez utiliser la méthode Artisan::call.

La structure de base de Laravel Testing est la suivante :

<?php

namespace TestsUnit;

use PHPUnitFrameworkTestCase;

class ExampleTest extends TestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function testBasicTest()
    {
        $this->assertTrue(true);
    }
}

Cette classe contient un exemple de méthode de cas de test testBasicTest(). Puisqu’une méthode d’essai doit être traitée comme un essai unique distinct, il est préférable de nommer la méthode d’essai en fonction de l’objectif de l’essai.

Rédaction de cas de test

Le processus de rédaction de cas de test est généralement divisé en les étapes suivantes :

  • Préparer l'environnement de test : démarrez l’application Laravel et configurez un environnement de test.
  • Définir les tests : l'utilisateur définit un ou plusieurs tests pour garantir l'exactitude de la logique de l'application.
  • Exécutez le test : exécutez le test et collectez les résultats, classez-les en fonction des résultats et enregistrez les résultats du test pour une comparaison ultérieure.

Define Test

Le processus de définition des cas de test implique généralement les aspects suivants.

Configurer l'environnement de test

Avant le début du test, vous devez configurer l'environnement de test. En créant un fichier .env.testing, définissez-y les variables d'environnement de test. Le framework Laravel détecte automatiquement ce fichier lors du chargement de l'application et utilise les paramètres de ce fichier par défaut.

.env.testing exemple :

APP_NAME=Laravel
APP_ENV=testing
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack

DB_CONNECTION=sqlite
DB_DATABASE=:memory:

D'autres paramètres peuvent également être ajoutés ou modifiés dans le fichier .env.testing. Ici, nous utiliserons la base de données SQLite, qui est un moteur de base de données léger et facile à tester.

Lors de l'utilisation d'une base de données SQLite, Laravel terminera automatiquement la migration des données, la migration manuelle n'est donc pas requise. Lors de l'accès à la base de données dans une méthode de test, Laravel utilisera automatiquement les migrations qui placent les données dans la base de données. Par conséquent, il n’est pas nécessaire de définir manuellement le schéma pendant le test.

Écrivez un exemple de test simple :

tests/Unit/ExampleTest.php

<?php

namespace TestsUnit;

use PHPUnitFrameworkTestCase;

class ExampleTest extends TestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function testBasicTest()
    {
        $this->assertTrue(true);
    }
}

Pour exécuter ce test dans la console, utilisez la commande suivante :

phpunit tests/Unit/ExampleTest.php

Après avoir exécuté ce test, les résultats du test seront affichés dans la console :

PHPUnit 8.5.1 by Sebastian Bergmann and contributors.

.                                                                   1 / 1 (100%)

Time: 00:00.010, Memory: 6.00 MB

OK (1 test, 1 assertion)

Comme vous pouvez le voir, le test a réussi.

Utilisation de la base de données Laravel

Parfois, nous devons accéder à la base de données réelle définie dans l'application Laravel. Lors de l'utilisation de la façade DB de Laravel dans une application, Laravel sélectionne automatiquement l'environnement d'application actuel.

Les tests peuvent être effectués via les méthodes suivantes :

$this->assertDatabaseHas('users', [
    'email' => 'test@example.com'
]);

Cette méthode de test teste le stockage et la récupération par l'utilisateur. Ici, nous utilisons assertDatabaseHas() pour ajouter une assertion afin de tester si les données existent.

Si vous souhaitez insérer des enregistrements dans la base de données, vous pouvez utiliser la méthode suivante :

$user = factory(User::class)->create();

$this->assertDatabaseHas('users', [
    'email' => $user->email
]);

Utiliser de faux objets

Vous pouvez utiliser Mockery fourni par Laravel La bibliothèque d'objets génère des objets fictifs et des dépendances transitives. Utilisez le cadre de simulation Mockery au lieu d'objets coûteux et codés en dur, puis exploitez ces services fictifs avec d'autres dépendances, objets de test ou composants plus volumineux.

La moquerie peut grandement simplifier votre code, améliorant ainsi la qualité et la maintenabilité de votre application.

$string = Mockery::mock('IlluminateHttpRequest');
$string->shouldReceive('input')

    ->once()
    ->andReturn('Welcome to Laravel Testing');

$this->assertTrue(strlen($string->input()) === 23);

在上面的代码示例中,我们首先创建了一个伪造对象$string,它是IlluminateHttpRequest的模拟实例。然后我们编写测试用例来测试模拟实例$input方法的返回值。

完成这些步骤后,我们便可以快速编写测试用例,取得高效、可维护、高质量的程序。

总结

直接就知道程序的运行结果是不能保证代码完美运作,甚至有可能出现严重的错误。而单元测试能够较全面地检测应用程序的每个组成部分,从而确保应用程序的质量与稳定性。

在Laravel框架中,Laravel Testing是一种流行的测试框架。Laravel Testing是受欢迎的,因为它易于使用,与Laravel框架深度结合,并且具有广泛的使用情况与应用。

在编写测试用例时,应确保测试方法的名称明确地描述了测试的功能。在测试方法中,使用assert()和其他相关断言操作来测试方法。完成测试后,可以使用PHPUnit来运行测试。

因为Laravel Testing已经在Laravel框架中集成,所以它使得开发人员可以轻松地测试他们的应用程序。Laravel Testing使开发人员能够更自信地修改和更新代码,并确保不会对任何现有功能产生负面影响。

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