array_change_key_case () est une fonction commune en php qui modifie le cas de toutes les clés dans un tableau. Cette fonction est très utile lorsque vous devez assurer la cohérence du cas des noms de clés du tableau. Cependant, dans les tests unitaires, nous devons nous assurer que cette fonction peut être exécutée correctement dans différentes situations. Cet article expliquera comment tester la fonction array_change_key_case () à l'aide de phpunit.
La fonction array_change_key_case () accepte deux paramètres:
Array : le tableau à traiter.
Case (facultatif): Spécifie la méthode de conversion de la casse supérieure. La valeur par défaut est Case_Lower , ce qui signifie la conversion en bas de cas; Case_upper peut être transmis dans le haut du boîtier.
Grammaire :
array_change_key_case(array $array, int $case = CASE_LOWER): array
Exemple :
$array = [
"FirstName" => "John",
"LastName" => "Doe"
];
print_r(array_change_key_case($array, CASE_LOWER));
Sortir:
Array
(
[firstname] => John
[lastname] => Doe
)
Ensuite, écrivons un cas de test PHPUnit pour vous assurer que Array_Change_key_Case () fonctionne correctement. Supposons que ce que nous voulons tester est de convertir toutes les clés du tableau en minuscules ou en majuscules.
Tout d'abord, assurez-vous que le phpunit installe. Si vous ne l'avez pas encore installé, vous pouvez l'installer via Composer:
composer require --dev phpunit/phpunit ^9
Dans les tests PHPUnit, nous devons créer une classe de test et définir certaines méthodes de test. Voici un exemple simple:
<?php
use PHPUnit\Framework\TestCase;
class ArrayChangeKeyCaseTest extends TestCase
{
// Testez convertir les noms de clés du tableau en minuscules
public function testArrayChangeKeyCaseToLower()
{
$input = [
"FirstName" => "John",
"LastName" => "Doe"
];
$expected = [
"firstname" => "John",
"lastname" => "Doe"
];
$result = array_change_key_case($input, CASE_LOWER);
$this->assertEquals($expected, $result);
}
// Testez convertir les noms de clés du tableau en majuscules
public function testArrayChangeKeyCaseToUpper()
{
$input = [
"firstName" => "John",
"lastName" => "Doe"
];
$expected = [
"FIRSTNAME" => "John",
"LASTNAME" => "Doe"
];
$result = array_change_key_case($input, CASE_UPPER);
$this->assertEquals($expected, $result);
}
// Tester le tableau vide
public function testArrayChangeKeyCaseWithEmptyArray()
{
$input = [];
$result = array_change_key_case($input, CASE_UPPER);
$this->assertEquals([], $result);
}
// Tester URL Gamme de clés
public function testArrayChangeKeyCaseWithURL()
{
$input = [
"UserURL" => "http://m66.net/profile",
"ApiURL" => "https://m66.net/api"
];
$expected = [
"userurl" => "http://m66.net/profile",
"apiurl" => "https://m66.net/api"
];
$result = array_change_key_case($input, CASE_LOWER);
$this->assertEquals($expected, $result);
}
}
TestArrayChangeKeyCasetOlower () : Tests pour convertir les clés d'un tableau en minuscules.
TestArrayChangeKeyCasetUpper () : Tests pour convertir les clés d'un tableau en majuscules.
TestArrayChangeKeyCaseWithEmpTyArray () : teste le comportement des tableaux vides.
TestArrayChangeKeyCaseWithurl () : teste un tableau avec des touches d'URL pour garantir que le nom de clé converti est en minuscule et que la valeur de l'URL reste inchangée.
Enregistrez le fichier de test dans le répertoire des tests et exécutez le test PHPUnit à l'aide de la commande suivante:
./vendor/bin/phpunit --bootstrap vendor/autoload.php tests/ArrayChangeKeyCaseTest
Si tout fonctionne bien, vous devriez voir la sortie de tous les tests passer.
En utilisant PHPUnit, nous pouvons nous assurer que la fonction Array_Change_Key_Case () fonctionne comme prévu dans plusieurs scénarios. Qu'il s'agisse d'une simple conversion de cas de nom de clé ou d'un tableau complexe contenant des URL, les tests unitaires corrects peuvent garantir que nos besoins sont satisfaits dans différentes situations. En testant différents types d'entrées, nous pouvons mieux comprendre le comportement des fonctions et assurer la robustesse du code.