現在の位置: ホーム> 最新記事一覧> array_columnを使用してロジックの単体テストを書き込む方法

array_columnを使用してロジックの単体テストを書き込む方法

M66 2025-05-12

PHPでは、 Array_Columnは、2次元配列から指定された列からデータを抽出する非常に便利な関数です。開発中の場合、特に複雑な配列データを扱う場合、 array_columnを使用して配列操作を簡素化する場合があります。コードの信頼性を確保するには、通常、 array_columnを使用してロジックの単体テストを記述する必要があります。

この記事では、 array_column関数を使用してコードの効果的な単体テストを記述し、いくつかの実用的な例を提供する方法について説明します。

1. 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']

2。単体テストを書き込みます

ユニットテストを書くとき、私たちの目標は、すべての場合にArray_Columnが適切に機能することを確認することです。これには、さまざまなデータ構造、空の配列、および可能な例外の処理が含まれます。

phpunitを使用したテストを作成します

まず、phpunitがインストールされ、構成されていることを確認してください。インストールしていない場合は、Composerを介してインストールできます。

 composer require --dev phpunit/phpunit

次に、テストクラスの作成を開始できます。 array_columnを使用して配列の列を抽出する関数抽出コラムがあるとします。

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

この関数の単体テストを書きます。

2.1基本テスト

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が配列から名前列を正しく抽出するようにします。

2.2空の配列テスト

また、 Array_Columnの空の配列の処理をテストする必要があります。

 public function testExtractColumnWithEmptyArray()
{
    $data = [];
    
    $result = extractColumn($data, 'name');
    
    // 空の配列は空の配列を返す必要があります
    $this->assertEmpty($result);
}

2.3列は存在しません

時々、あなたが要求したアレイに列がないかもしれません。この時点で、 array_columnは空の配列を返します。

 public function testExtractColumnWithNonExistentColumn()
{
    $data = [
        ['id' => 1, 'name' => 'John'],
        ['id' => 2, 'name' => 'Jane'],
    ];
    
    $result = extractColumn($data, 'age');
    
    // 'age' 列は存在しません,空の配列を返す必要があります
    $this->assertEmpty($result);
}

2.4 index_keyパラメーターを使用します

また、返された配列のインデックスを指定する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);
}

3。結論

array_columnを使用してロジックの単位テストを作成する場合、空の配列、存在しない列、可能なインデックスキー処理など、さまざまな状況を考慮する必要があります。これらのテストを通じて、コードの安定性と信頼性を確保できます。

PhPunitが提供する豊富な機能により、 Array_Columnを使用してコードの効率的で包括的な単体テストを簡単に記述して、さまざまな状況で適切に機能するようにします。