Maison  >  Article  >  développement back-end  >  Comment utiliser le framework PHPUnit pour tester en PHP

Comment utiliser le framework PHPUnit pour tester en PHP

WBOY
WBOYoriginal
2023-05-22 08:19:351371parcourir

À mesure que le développement Web continue d'évoluer, les tests sont devenus un élément essentiel. Dans le développement Web, les tests peuvent nous aider à garantir la qualité du code et à améliorer l'efficacité du développement. Le framework PHPUnit est l'un des frameworks de test les plus couramment utilisés en PHP. Il fournit une multitude d'outils de test et d'API, permettant aux développeurs d'écrire et d'exécuter facilement des cas de test. Dans cet article, nous verrons comment utiliser le framework PHPUnit pour tester en PHP.

1. Installer PHPUnit

PHPUnit est une bibliothèque d'extensions PHP indépendante qui peut être installée via Composer. Avant d'installer PHPUnit, vous devez vous assurer que Composer est installé. S'il n'est pas installé, veuillez l'installer conformément aux instructions sur le site officiel de Composer.

Avant d'installer PHPUnit, vous devez d'abord installer les dépendances PHPUnit dans le projet :

composer require --dev phpunit/phpunit

Cette commande installera le package de dépendances PHPUnit dans le répertoire vendor du projet et l'enregistrera en tant que dépendance de développement dans Fichier composer.json dans la section require-dev. Une fois l’exécution de cette commande terminée, nous pouvons utiliser PHPUnit. vendor目录下安装PHPUnit依赖包,作为开发依赖保存在composer.json文件中的require-dev部分。在该命令运行完成后,我们就可以使用PHPUnit了。

二、创建测试用例

在使用PHPUnit进行测试之前,需要先编写测试用例。测试用例是针对一个特定功能或方法的测试代码集合,用于验证代码的正确性。在PHPUnit中,一个测试用例类可以包含多个测试方法。测试方法以test开头,并且不能接受任何参数。

下面我们来创建一个简单的测试用例来验证一个加法函数的正确性。首先,我们需要在项目根目录下创建一个名为CalculatorTest.php的文件,然后在该文件中编写测试用例:

<?php
use PHPUnitFrameworkTestCase;

class CalculatorTest extends TestCase
{
    public function testAddition()
    {
        $this->assertSame(2 + 2, 4);
    }
}

在上面的示例中,我们编写了一个名为testAddition()的测试方法,用于验证2 + 2是否等于4。其中,我们使用了assertSame()函数来判断两个值是否相等。如果两个值不相等,则测试用例将会失败。

三、运行测试用例

编写完测试用例后,我们就可以运行测试用例来验证代码的正确性。在PHPUnit中,可以通过以下命令来运行测试用例:

./vendor/bin/phpunit CalculatorTest.php

在运行以上命令后,PHPUnit将会自动运行我们在CalculatorTest.php文件中编写的测试用例。如果测试用例运行成功,则会输出一个绿色的符号;否则会输出一个红色的符号,并提示测试失败的原因。

四、使用PHPUnit提供的API

PHPUnit提供了很多实用的API,使得我们可以更加方便地编写测试用例。

  1. 断言 API

PHPUnit中最常用的API是断言API。它提供了一些用于断言测试结果的函数,例如assertEmpty()assertNotNull()assertGreaterThan()等。这些函数可以用于测试对象、字符串、数组、变量等等。

以下是一些常用的断言函数示例:

$this->assertEquals(2 + 2, 4);  // 两个值相等
$this->assertNotEmpty($array); // 非空数组
$this->assertInstanceOf(MyClass::class, $object); // 类的实例
  1. 数据集 API

PHPUnit提供了一个数据集API,可以在同一个测试用例中测试多组数据。其使用方式为将测试数据作为一个数组,然后使用@dataProvider注解指定数据提供函数,如下所示:

/**
 * @dataProvider additionProvider
 */
public function testAddition($a, $b, $expected)
{
    $this->assertSame($a + $b, $expected);
}

public function additionProvider()
{
    return [
        [0, 0, 0],
        [0, 1, 1],
        [1, 0, 1],
        [1, 1, 2],
    ];
}

上面的示例中,我们使用了@dataProvider注解,将测试数据提供函数的名称设置为additionProvider

2. Créer des cas de test

Avant d'utiliser PHPUnit pour les tests, vous devez d'abord écrire des cas de test. Un scénario de test est une collection de codes de test pour une fonction ou une méthode spécifique, utilisée pour vérifier l'exactitude du code. Dans PHPUnit, une classe de scénario de test peut contenir plusieurs méthodes de test. Les méthodes de test commencent par test et ne peuvent accepter aucun paramètre.

Créons un cas de test simple pour vérifier l'exactitude d'une fonction d'addition. Tout d'abord, nous devons créer un fichier nommé CalculatorTest.php dans le répertoire racine du projet, puis écrire le scénario de test dans le fichier : 🎜rrreee🎜Dans l'exemple ci-dessus, nous avons écrit un fichier appelé The test La méthode de testAddition() est utilisée pour vérifier si 2 + 2 est égal à 4. Parmi eux, nous utilisons la fonction assertSame() pour déterminer si deux valeurs​​sont égales. Si les deux valeurs ne sont pas égales, le scénario de test échouera. 🎜🎜3. Exécuter le scénario de test🎜🎜Après avoir écrit le scénario de test, nous pouvons exécuter le scénario de test pour vérifier l'exactitude du code. Dans PHPUnit, vous pouvez exécuter le scénario de test via la commande suivante : 🎜rrreee🎜Après avoir exécuté la commande ci-dessus, PHPUnit exécutera automatiquement le scénario de test que nous avons écrit dans le fichier CalculatorTest.php. Si le scénario de test s'exécute avec succès, un symbole vert sera affiché ; sinon, un symbole rouge sera affiché et la raison de l'échec du test sera demandée. 🎜🎜4. Utilisez l'API fournie par PHPUnit🎜🎜PHPUnit fournit de nombreuses API pratiques, ce qui nous permet d'écrire plus facilement des cas de test. 🎜
  1. API d'assertion
🎜L'API la plus couramment utilisée dans PHPUnit est l'API d'assertion. Il fournit certaines fonctions pour affirmer les résultats des tests, telles que assertEmpty(), assertNotNull(), assertGreaterThan(), etc. Ces fonctions peuvent être utilisées sur des objets de test, des chaînes, des tableaux, des variables, etc. 🎜🎜Voici quelques exemples de fonctions d'assertion couramment utilisées : 🎜rrreee
  1. API Dataset
🎜PHPUnit fournit une API Dataset qui peut être utilisée dans le même scénario de test Testez plusieurs ensembles de données. La façon de l'utiliser est d'utiliser les données de test sous forme de tableau, puis d'utiliser l'annotation @dataProvider pour spécifier la fonction fournissant les données, comme indiqué ci-dessous : 🎜rrreee🎜Dans l'exemple ci-dessus, nous avons utilisé @dataProvider code>, définissez le nom de la fonction fournissant des données de test sur <code>additionProvider. Cette fonction renvoie un tableau contenant plusieurs ensembles de données de test. 🎜🎜5. Résumé🎜🎜Dans cet article, nous avons présenté comment utiliser le framework PHPUnit pour les tests en PHP. Nous avons d'abord présenté l'installation et l'utilisation de PHPUnit, puis démontré comment créer un scénario de test et exécuter le scénario de test, et enfin présenté quelques API pratiques fournies par PHPUnit. L'utilisation du framework PHPUnit peut nous aider à écrire et à exécuter des cas de test plus facilement, améliorant ainsi la qualité du code et l'efficacité du développement. 🎜

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