Aktueller Standort: Startseite> Neueste Artikel> So überprüfen Sie die Ausgabe von Array_Diff_Ukey () in Unit -Tests

So überprüfen Sie die Ausgabe von Array_Diff_Ukey () in Unit -Tests

M66 2025-05-14

In der PHP-Programmierung ist Array_Diff_Ukey () eine sehr praktische Funktion, mit der Entwickler die Schlüsselunterschiede zwischen zwei Arrays basierend auf benutzerdefinierten Schlüsselwertvergleichsfunktionen berechnen können. Während array_diff_ukey () leistungsstark ist, ist es wichtig, sicherzustellen, dass es in verschiedenen Szenarien korrekt funktioniert. Die Überprüfung der Richtigkeit und Ausgabe der Funktion array_diff_ukey () in Unit -Tests ist ein wichtiger Schritt, um die Zuverlässigkeit sicherzustellen.

In diesem Artikel wird angezeigt, wie Sie Unit -Tests in PHP unter Verwendung von Phpunit schreiben, um die Funktionalität der Funktion array_diff_ukey () zu überprüfen.

1. Verstehen Sie array_diff_ukey ()

Lassen Sie uns zunächst kurz die Rolle von array_diff_ukey () überprüfen. Diese Funktion vergleicht zwei Arrays und gibt Elemente im ersten Array zurück, deren Schlüssel nicht die gleichen wie im zweiten Array sind. Ähnlich wie bei Array_Diff () stützt sich Array_Diff_Ukey () eher auf einer benutzerdefinierten Schlüsselwertvergleichsfunktion als auf der Standardeinstellung, die dem Vergleich entspricht.

Die Funktionssignatur ist wie folgt:

 array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array

Parameterbeschreibung:

  • $ Array1 : Das erste Array.

  • $ array2 : Das zweite Array.

  • $ key_compare_func : Eine Rückruffunktion zum Vergleich von Array -Tasten.

Diese Funktion gibt ein Array zurück, das alle Elemente in $ array1 enthält, die nicht in $ array2 erscheinen.

2. Schreiben Sie Unit -Tests

Wir werden das Phpunit -Framework verwenden, um Array_Diff_Ukey () zu testen. Wenn Sie Phpunit nicht installiert haben, können Sie es über den Komponisten installieren:

 composer require --dev phpunit/phpunit

Angenommen, wir haben die folgenden zwei Arrays:

 $array1 = [
    1 => 'apple',
    2 => 'banana',
    3 => 'cherry'
];

$array2 = [
    1 => 'apple',
    4 => 'date',
    5 => 'elderberry'
];

2.1 Erstellen Sie eine benutzerdefinierte Schlüsselvergleichsfunktion

Zunächst müssen wir eine benutzerdefinierte Schlüsselvergleichsfunktion für Array_Diff_Ukey () erstellen. Angenommen, unsere Vergleichsfunktion behandelt die Schlüssel als Ganzzahlen und führt einen grundlegenden Gleichstellungsvergleich durch.

 function key_compare($key1, $key2) {
    return $key1 - $key2;
}

2.2 Testklassen schreiben

Erstellen Sie als Nächstes eine Phpunit -Testklasse, um die Ausgabe von Array_Diff_Ukey () zu überprüfen.

 use PHPUnit\Framework\TestCase;

class ArrayDiffUkeyTest extends TestCase
{
    public function testArrayDiffUkey()
    {
        $array1 = [
            1 => 'apple',
            2 => 'banana',
            3 => 'cherry'
        ];

        $array2 = [
            1 => 'apple',
            4 => 'date',
            5 => 'elderberry'
        ];

        $result = array_diff_ukey($array1, $array2, 'key_compare');

        // Bejahung $result Nur Schlüssel sind im Array enthalten 2 Und 3
        $this->assertArrayHasKey(2, $result);
        $this->assertArrayHasKey(3, $result);
        $this->assertCount(2, $result);

        // Weitere Überprüfung des Wertes
        $this->assertEquals('banana', $result[2]);
        $this->assertEquals('cherry', $result[3]);
    }
}

2.3 Erläutern Sie den Testinhalt

  • Wir vergleichen $ arrray1 und $ array2 mit Array_Diff_Ukey () .

  • Mit der benutzerdefinierten KEY_COMPare -Funktion wird zum Vergleichen von Schlüssel verwendet.

  • Verwenden Sie den AssertArrayHaskey () von Phpunit, um sicherzustellen, dass sich die Schlüsselwerte 2 und 3 im Ergebnisarray befinden.

  • AssertCount () wird verwendet, um zu überprüfen, ob das zurückgegebene Array die richtige Anzahl von Elementen enthält.

  • Schließlich überprüfen wir, dass der korrekte Wert jedes Schlüssels im Array von AssertEquals () zurückgegeben wird.

3. Führen Sie den Test aus

In der Befehlszeile können Sie den Phpunit -Test mit dem folgenden Befehl ausführen:

 vendor/bin/phpunit --bootstrap vendor/autoload.php tests/ArrayDiffUkeyTest

Wenn alles einwandfrei funktioniert, sollten Sie eine ähnliche Ausgabe sehen wie folgt:

 OK (1 test, 3 assertions)

Dies zeigt, dass unsere Funktion array_diff_ukey () einwandfrei funktioniert und alle Behauptungen im Test übergeben werden.

4. Test deckt verschiedene Szenarien ab

Um sicherzustellen, dass array_diff_ukey () in allen Fällen korrekt funktioniert, können Sie den Test erweitern, um andere Grenzfälle und Ausnahmeszenarien abzudecken. Zum Beispiel:

  • Testen Sie das leere Array.

  • Testen Sie ein Array, das denselben, aber unterschiedlichen Werte enthält.

  • Testen Sie den Fall, in dem die Funktion für benutzerdefinierte Schlüsselvergleichs unterschiedliche Ergebnisse zurückgibt.

Diese umfassenden Tests stellt sicher, dass Ihr Code nicht anfällig für unerwartete Probleme in praktischen Anwendungen ist.

Zusammenfassen

Durch das Schreiben von Phpunit -Tests können Sie die Richtigkeit und Ausgabe der Funktion array_diff_ukey () leicht überprüfen. Unit -Tests hilft nicht nur, die Richtigkeit Ihres Codes zu gewährleisten, sondern auch dabei, potenzielle Fehler zu ermitteln, wenn sich Ihr Code ändert. Wenn Sie weiterhin PHP und Phpunit verwenden, werden Sie feststellen, dass Unit -Tests ein leistungsstarkes Tool zur Verbesserung der Qualität Ihres Codes sind.