Dans le développement de PHP, STR_SPLIT est une fonction de chaîne très courante utilisée pour diviser les chaînes en tableaux, chaque élément de tableau contient un caractère de la chaîne d'origine. En règle générale, nous voulons rédiger des tests unitaires pour notre code pour garantir que sa fonctionnalité fonctionne comme prévu. Cet article présentera comment rédiger des tests unitaires pour la fonction STR_SPLIT dans PHP et affichera certains scénarios de test courants.
Tout d'abord, passons rapidement en revue l'utilisation de base de la fonction STR_SPLIT . La fonction STR_SPLIT divise la chaîne en sous-chaînes de la longueur spécifiée et renvoie un tableau. La syntaxe de base est la suivante:
array str_split ( string $string [, int $length = 1 ] )
$ String : la chaîne d'entrée à diviser.
$ la longueur (facultatif): la longueur de chaque sous-chaîne, par défaut à 1.
$string = "HelloWorld";
$split = str_split($string, 2);
print_r($split);
Sortir:
Array
(
[0] => He
[1] => ll
[2] => oW
[3] => or
[4] => ld
)
Dans cet exemple, STR_SPLIT divise la chaîne "Helloworld" dans un tableau dans un groupe de deux caractères.
Afin d'écrire des tests unitaires, nous devons d'abord installer PHPUnit, un cadre de test unitaire standard pour PHP. Vous pouvez installer PHPUnit via Composer:
composer require --dev phpunit/phpunit
Une fois l'installation terminée, nous pouvons exécuter PHPUnit via la ligne de commande pour effectuer nos tests unitaires.
Ensuite, nous rédigerons une classe de test PHPUnit pour tester le comportement de la fonction STR_SPLIT . Pour plus de simplicité, nous créerons une classe de test de base et des méthodes de test d'écriture pour plusieurs scénarios de test courants.
Créez d'abord un fichier de test strsplittest.php :
<?php
use PHPUnit\Framework\TestCase;
class StrSplitTest extends TestCase
{
// test str_split Fonctions de base
public function testBasicFunctionality()
{
$result = str_split("HelloWorld", 2);
$expected = ['He', 'll', 'oW', 'or', 'ld'];
$this->assertEquals($expected, $result);
}
// test传递空字符串时的返回值
public function testEmptyString()
{
$result = str_split("", 2);
$this->assertEquals([], $result);
}
// test传递单字符字符串时的返回值
public function testSingleCharacterString()
{
$result = str_split("A");
$this->assertEquals(['A'], $result);
}
// test使用默认长度 1 La situation
public function testDefaultLength()
{
$result = str_split("Hello");
$expected = ['H', 'e', 'l', 'l', 'o'];
$this->assertEquals($expected, $result);
}
// test长度大于字符串长度时的行为
public function testLengthGreaterThanString()
{
$result = str_split("Hi", 10);
$this->assertEquals(['Hi'], $result);
}
// test没有传递长度参数时,Utiliser le comportement par défaut
public function testWithoutLength()
{
$result = str_split("abcdef");
$this->assertEquals(['a', 'b', 'c', 'd', 'e', 'f'], $result);
}
}
TestBasicFonctionalité : teste la division des chaînes standard.
TESTEMPTYSTRING : Pour tester le cas d'une chaîne vide, un tableau vide doit être retourné.
TestsingleCaracterstring : teste une chaîne avec un seul caractère.
TestDefaultLength : Testez s'il faut diviser la chaîne par défaut Longueur 1 en cas de longueur.
TestLengthGreaterThanString : Testez si seule une chaîne complète est renvoyée lorsque la longueur de division est supérieure à la longueur de la chaîne.
TestWithoutLength : Testez s'il faut se séparer en fonction de la longueur par défaut 1 lorsque la longueur n'est pas transmise.
Après avoir terminé la classe de test ci-dessus, vous pouvez utiliser PHPUnit pour exécuter des tests unitaires. Ouvrez le terminal, entrez le répertoire du projet et exécutez la commande suivante:
./vendor/bin/phpunit StrSplitTest.php
Si tout fonctionne bien, vous devriez voir la sortie de test suivante indiquant que tous les tests sont passés:
PHPUnit 9.5.10 by Sebastian Bergmann and contributors.
......
Time: 00:00.029, Memory: 6.00 MB
OK (6 tests, 6 assertions)
En écrivant des tests unitaires, nous pouvons nous assurer que la fonction STR_SPLIT fonctionne correctement dans tous les cas. Les tests unitaires nous aident non seulement à découvrir des problèmes potentiels, mais offrent également des garanties de refactorisation de code. J'espère que cet article vous aidera à comprendre comment rédiger des tests unitaires pour les fonctions STR_SPLIT en PHP et garder votre code robuste pendant le développement.