Aktueller Standort: Startseite> Neueste Artikel> So schreiben Sie Unit -Tests für Logik mit Array_Column

So schreiben Sie Unit -Tests für Logik mit Array_Column

M66 2025-05-12

In PHP ist Array_Column eine sehr nützliche Funktion, die Daten aus einer angegebenen Spalte aus einem zweidimensionalen Array extrahiert. Bei der Entwicklung, insbesondere wenn Sie sich mit komplexen Array -Daten befassen, kann Array_Column verwendet werden, um Array -Operationen zu vereinfachen. Um die Zuverlässigkeit des Codes zu gewährleisten, müssen wir normalerweise Unit -Tests für Logik mit Array_Column schreiben.

In diesem Artikel wird erläutert, wie effektive Unit -Tests für Code mit der Funktion array_column geschrieben werden und einige praktische Beispiele bereitgestellt werden.

1. Verstehen Sie die Funktion array_column

Die Hauptfunktion der Funktion array_column besteht darin, alle Werte einer angegebenen Spalte aus einem mehrdimensionalen Array zu extrahieren und ein eindimensionales Array zurückzugeben, das alle Werte der Spalte enthält.

Grammatik:

 array_column(array $input, mixed $column_key, mixed $index_key = null): array
  • $ Eingabe : Das zweidimensionale Eingangsarray.

  • $ column_key : Der Schlüsselname der Spalte, der extrahiert werden muss (kann der Schlüssel des Index- oder assoziativen Arrays sein).

  • $ index_key : optional, der Index des zurückgegebenen Arrays. Kann eine andere Spalte im Array sein.

Zum Beispiel:

 $data = [
    ['id' => 1, 'name' => 'John', 'age' => 28],
    ['id' => 2, 'name' => 'Jane', 'age' => 22],
    ['id' => 3, 'name' => 'Doe', 'age' => 35],
];

$names = array_column($data, 'name');  // ['John', 'Jane', 'Doe']

2. Schreiben Sie Unit -Tests

Beim Schreiben von Unit -Tests ist es unser Ziel, sicherzustellen, dass Array_Column in allen Fällen ordnungsgemäß funktioniert. Dies umfasst die Behandlung verschiedener Datenstrukturen, leere Arrays und mögliche Ausnahmen.

Schreiben von Tests mit Phpunit

Stellen Sie zunächst sicher, dass Phpunit installiert und konfiguriert ist. Wenn Sie es nicht installiert haben, können Sie es über den Komponisten installieren:

 composer require --dev phpunit/phpunit

Dann können Sie mit dem Schreiben von Testkursen beginnen. Angenommen, wir haben eine Funktion ExtractColumn , die Array_Column verwendet, um eine Spalte des Arrays zu extrahieren.

 function extractColumn(array $data, $columnKey)
{
    return array_column($data, $columnKey);
}

Wir schreiben Unit -Tests für diese Funktion.

2.1 Basistest

 use PHPUnit\Framework\TestCase;

class ArrayColumnTest extends TestCase
{
    public function testExtractColumn()
    {
        $data = [
            ['id' => 1, 'name' => 'John'],
            ['id' => 2, 'name' => 'Jane'],
            ['id' => 3, 'name' => 'Doe'],
        ];

        $result = extractColumn($data, 'name');
        
        // Stellen Sie sicher, dass der Rückgabewert korrekt ist
        $this->assertEquals(['John', 'Jane', 'Doe'], $result);
    }
}

In diesem Test stellen wir sicher, dass Array_Column die Namensspalte korrekt aus dem Array extrahiert.

2.2 leerer Array -Test

Wir müssen auch Array_Columns Verarbeitung leerer Arrays testen.

 public function testExtractColumnWithEmptyArray()
{
    $data = [];
    
    $result = extractColumn($data, 'name');
    
    // Leeres Array sollte leeres Array zurückgeben
    $this->assertEmpty($result);
}

2.3 Spalte existiert nicht

Manchmal gibt es in dem von Ihnen angeforderten Array möglicherweise keine Spalten. Zu diesem Zeitpunkt gibt Array_Column ein leeres Array zurück.

 public function testExtractColumnWithNonExistentColumn()
{
    $data = [
        ['id' => 1, 'name' => 'John'],
        ['id' => 2, 'name' => 'Jane'],
    ];
    
    $result = extractColumn($data, 'age');
    
    // 'age' Die Spalte existiert nicht,Leeres Array sollte zurückgegeben werden
    $this->assertEmpty($result);
}

2.4 Verwenden von Index_Key Parameter

Wir können auch den dritten Parameter von Array_Column , Index_key , testen, der den Index des zurückgegebenen Arrays angibt.

 public function testExtractColumnWithIndexKey()
{
    $data = [
        ['id' => 1, 'name' => 'John'],
        ['id' => 2, 'name' => 'Jane'],
        ['id' => 3, 'name' => 'Doe'],
    ];
    
    $result = array_column($data, 'name', 'id');
    
    // Das zurückgegebene Array sollte sein 'id' Als Schlüssel
    $this->assertEquals([1 => 'John', 2 => 'Jane', 3 => 'Doe'], $result);
}

3. Schlussfolgerung

Beim Schreiben von Unit-Tests für Logik unter Verwendung von Array_Column sollten wir verschiedene Situationen berücksichtigen, einschließlich leerer Arrays, nicht existierenden Spalten und einer möglichen Verarbeitung der Indexschlüssel. Durch diese Tests können wir die Stabilität und Zuverlässigkeit des Codes sicherstellen.

Mit den reichhaltigen Funktionen von Phpunit können wir mit Array_Column problemlos effiziente und umfassende Unit -Tests für Code schreiben, um sicherzustellen, dass er in verschiedenen Situationen ordnungsgemäß funktioniert.