PHPでは、 Array_Columnは、2次元配列から指定された列からデータを抽出する非常に便利な関数です。開発中の場合、特に複雑な配列データを扱う場合、 array_columnを使用して配列操作を簡素化する場合があります。コードの信頼性を確保するには、通常、 array_columnを使用してロジックの単体テストを記述する必要があります。
この記事では、 array_column関数を使用してコードの効果的な単体テストを記述し、いくつかの実用的な例を提供する方法について説明します。
array_column関数の主な関数は、多次元配列から指定された列のすべての値を抽出し、列のすべての値を含む1次元配列を返すことです。
文法:
array_column(array $input, mixed $column_key, mixed $index_key = null): array
$入力:入力2次元配列。
$ column_key :抽出する必要がある列のキー名(インデックスまたは連想配列の鍵になります)。
$ index_key :オプション、返された配列のインデックス。配列の別の列にすることができます。
例えば:
$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']
ユニットテストを書くとき、私たちの目標は、すべての場合にArray_Columnが適切に機能することを確認することです。これには、さまざまなデータ構造、空の配列、および可能な例外の処理が含まれます。
まず、phpunitがインストールされ、構成されていることを確認してください。インストールしていない場合は、Composerを介してインストールできます。
composer require --dev phpunit/phpunit
次に、テストクラスの作成を開始できます。 array_columnを使用して配列の列を抽出する関数抽出コラムがあるとします。
function extractColumn(array $data, $columnKey)
{
return array_column($data, $columnKey);
}
この関数の単体テストを書きます。
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');
// 返品値が正しいことを確認します
$this->assertEquals(['John', 'Jane', 'Doe'], $result);
}
}
このテストでは、 array_columnが配列から名前列を正しく抽出するようにします。
また、 Array_Columnの空の配列の処理をテストする必要があります。
public function testExtractColumnWithEmptyArray()
{
$data = [];
$result = extractColumn($data, 'name');
// 空の配列は空の配列を返す必要があります
$this->assertEmpty($result);
}
時々、あなたが要求したアレイに列がないかもしれません。この時点で、 array_columnは空の配列を返します。
public function testExtractColumnWithNonExistentColumn()
{
$data = [
['id' => 1, 'name' => 'John'],
['id' => 2, 'name' => 'Jane'],
];
$result = extractColumn($data, 'age');
// 'age' 列は存在しません,空の配列を返す必要があります
$this->assertEmpty($result);
}
また、返された配列のインデックスを指定するArray_Columnであるindex_keyの3番目のパラメーターをテストすることもできます。
public function testExtractColumnWithIndexKey()
{
$data = [
['id' => 1, 'name' => 'John'],
['id' => 2, 'name' => 'Jane'],
['id' => 3, 'name' => 'Doe'],
];
$result = array_column($data, 'name', 'id');
// 返された配列はある必要があります 'id' キーとして
$this->assertEquals([1 => 'John', 2 => 'Jane', 3 => 'Doe'], $result);
}
array_columnを使用してロジックの単位テストを作成する場合、空の配列、存在しない列、可能なインデックスキー処理など、さまざまな状況を考慮する必要があります。これらのテストを通じて、コードの安定性と信頼性を確保できます。
PhPunitが提供する豊富な機能により、 Array_Columnを使用してコードの効率的で包括的な単体テストを簡単に記述して、さまざまな状況で適切に機能するようにします。