Die Funktion von PHP von Array_Diff_assoc () wird verwendet, um die Unterschiede zwischen zwei oder mehr Arrays zu berechnen und die Elemente zurückzugeben, die im ersten Array vorhanden sind, aber nicht in anderen Arrays enthalten sind. Es vergleicht nicht nur die Werte des Arrays, sondern auch die Schlüssel des Arrays. Verstehen, wie die Richtigkeit der Funktion array_diff_assoc () überprüft wird, ist ein wichtiger Bestandteil der korrekten PHP -Programme.
Verstehen Sie vor dem Schreiben von Testfällen zunächst die grundlegende Verwendung der Funktion 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);
?>
In diesem Beispiel enthält $ result ein Array, das die in $ array1 vorhandenen Elemente zeigt, die jedoch nicht in $ array2 sind, unter Berücksichtigung der Unterschiede in den Schlüsselnamen und -werten. Die Ausgabe wird sein:
Array
(
[b] => blue
[c] => red
)
Um die Richtigkeit von array_diff_assoc () zu überprüfen, müssen wir einige Testfälle entwerfen, um sicherzustellen, dass sie in allen Fällen korrekt funktioniert. Hier sind einige häufige Testsituationen:
Wir können den Unterschied zwischen den beiden Arrays testen, um sicherzustellen, dass die Funktion das richtige Ergebnis zurückgibt.
<?php
// Testfälle 1: Grundlegende Funktionstests
$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"));
?>
Wenn die beiden Arrays genau gleich sind, sollte Array_diff_assoc () ein leeres Array zurückgeben.
<?php
// Testfälle 2: Das gleiche Array
$array1 = array("a" => "green", "b" => "blue");
$array2 = array("a" => "green", "b" => "blue");
$result = array_diff_assoc($array1, $array2);
assert($result === array());
?>
Während des Tests können Sie die Schlüssel oder Werte des Arrays unterschiedlich festlegen, um sicherzustellen, dass Array_diff_assoc () nicht nur die Werte vergleicht, sondern auch die Tasten vergleicht.
<?php
// Testfälle 3: Unterschiedliche Schlüsselwerte
$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 () kann mehrere Arrays als Parameter akzeptieren, daher müssen wir die Unterschiede zwischen mehreren Arrays testen.
<?php
// Testfälle 4: Vergleich der meisten Arrays
$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"));
?>
Für den Fall von leeren Arrays sollte Array_Diff_assoc () zum ursprünglichen Array zurückkehren, da es keine anderen Arrays zum Vergleich gibt.
<?php
// Testfälle 5: Leerer Array -Test
$array1 = array();
$array2 = array("a" => "green", "b" => "blue");
$result = array_diff_assoc($array1, $array2);
assert($result === array());
?>
Wir müssen auch Arrays verschiedener Datentypen testen, um sicherzustellen, dass die Funktion verschiedene Datenarten (z. B. Ganzzahlen, Zeichenfolgen, Booleschen usw.) verarbeiten kann.
<?php
// Testfälle 6: Verschiedene Datentypen
$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, das Unit -Test -Framework von PHP, kann verwendet werden, um die Ausführung dieser Testfälle zu automatisieren. Hier ist ein einfaches Beispiel für Phpunit -Test:
<?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);
}
}
?>
In den obigen Testfällen haben wir die Richtigkeit der Funktion array_diff_assoc () in mehreren verschiedenen Szenarien überprüft. Stellen Sie sicher, dass Sie umfassende Testfälle für häufige Randbedingungen und unterschiedliche Datentypen schreiben, um die Zuverlässigkeit der Code zu gewährleisten. Durch die Verwendung von Phpunit- oder anderen Testwerkzeugen können wir diese Tests automatisieren und sicherstellen, dass die Funktionen in realen Anwendungen ordnungsgemäß funktionieren.