La fonction Array_Diff_assoc () de PHP est utilisée pour calculer les différences entre deux tableaux ou plus et renvoyer les éléments qui existent dans le premier tableau mais qui ne sont pas dans d'autres tableaux. Il compare non seulement les valeurs du tableau, mais compare également les clés du tableau. Comprendre comment vérifier l'exactitude de la fonction array_diff_assoc () est une partie importante pour s'assurer que les programmes PHP s'exécutent correctement.
Avant d'écrire des cas de test, comprenez d'abord l'utilisation de base de la fonction array_diff_assoc () :
<?php
$array1 = array("a" => "green", "b" => "blue", "c" => "red");
$array2 = array("a" => "green", "b" => "yellow", "d" => "purple");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
Dans cet exemple, $ résultat contiendra un tableau montrant les éléments qui existent dans $ array1 mais qui ne sont pas dans $ array2 , en tenant compte des différences de noms et de valeurs clés. La sortie sera:
Array
(
[b] => blue
[c] => red
)
Pour vérifier l'exactitude de Array_Diff_assoc () , nous devons concevoir certains cas de test pour nous assurer qu'il fonctionne correctement dans tous les cas. Voici quelques situations de test courantes:
Nous pouvons tester la différence entre les deux tableaux pour nous assurer que la fonction renvoie le résultat correct.
<?php
// Cas de test 1: Tests fonctionnels de base
$array1 = array("a" => "green", "b" => "blue", "c" => "red");
$array2 = array("a" => "green", "b" => "yellow", "d" => "purple");
$result = array_diff_assoc($array1, $array2);
assert($result === array("b" => "blue", "c" => "red"));
?>
Lorsque les deux tableaux sont exactement les mêmes, array_diff_assoc () doit renvoyer un tableau vide.
<?php
// Cas de test 2: Le même tableau
$array1 = array("a" => "green", "b" => "blue");
$array2 = array("a" => "green", "b" => "blue");
$result = array_diff_assoc($array1, $array2);
assert($result === array());
?>
Pendant les tests, vous pouvez définir les clés ou les valeurs du tableau différemment pour vous assurer que Array_Diff_assoc () compare non seulement les valeurs, mais compare également les clés.
<?php
// Cas de test 3: Différentes valeurs de clés
$array1 = array("a" => "green", "b" => "blue", "c" => "red");
$array2 = array("a" => "green", "b" => "blue", "c" => "yellow");
$result = array_diff_assoc($array1, $array2);
assert($result === array("c" => "red"));
?>
array_diff_assoc () peut accepter plusieurs tableaux en tant que paramètres, nous devons donc tester les différences entre plusieurs tableaux.
<?php
// Cas de test 4: Comparaison de la plupart des tableaux
$array1 = array("a" => "green", "b" => "blue", "c" => "red");
$array2 = array("a" => "green", "b" => "yellow");
$array3 = array("c" => "red");
$result = array_diff_assoc($array1, $array2, $array3);
assert($result === array("b" => "blue"));
?>
Pour le cas des tableaux vides, array_diff_assoc () doit revenir au tableau d'origine car il n'y a pas d'autres tableaux à comparaison.
<?php
// Cas de test 5: Test de tableau vide
$array1 = array();
$array2 = array("a" => "green", "b" => "blue");
$result = array_diff_assoc($array1, $array2);
assert($result === array());
?>
Nous devons également tester les tableaux de différents types de données pour nous assurer que la fonction peut gérer différents types de données (par exemple, entiers, chaînes, booléens, etc.).
<?php
// Cas de test 6: Différents types de données
$array1 = array("a" => 1, "b" => "blue", "c" => true);
$array2 = array("a" => 1, "b" => "blue", "c" => false);
$result = array_diff_assoc($array1, $array2);
assert($result === array("c" => true));
?>
PHPUnit, le cadre de test unitaire de PHP, peut être utilisé pour automatiser l'exécution de ces cas de test. Voici un exemple de test phpunit simple:
<?php
use PHPUnit\Framework\TestCase;
class ArrayDiffAssocTest extends TestCase
{
public function testArrayDiffAssoc()
{
$array1 = array("a" => "green", "b" => "blue", "c" => "red");
$array2 = array("a" => "green", "b" => "yellow", "d" => "purple");
$result = array_diff_assoc($array1, $array2);
$this->assertEquals(array("b" => "blue", "c" => "red"), $result);
}
}
?>
À travers les cas de test ci-dessus, nous avons vérifié l'exactitude de la fonction array_diff_assoc () dans plusieurs scénarios différents. Assurez-vous que vous rédigez des cas de test complets couvrant les conditions aux limites courantes et différents types de données est essentiel pour garantir la fiabilité du code. L'utilisation de PHPUnit ou d'autres outils de test peut nous aider à automatiser ces tests et à nous assurer que les fonctions fonctionnent correctement dans les applications du monde réel.