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.
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']
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.
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.
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.
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);
}
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);
}
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);
}
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.