現在の位置: ホーム> 最新記事一覧> ユニットテストでarray_diff_ukey()の出力を確認する方法

ユニットテストでarray_diff_ukey()の出力を確認する方法

M66 2025-05-14

PHPプログラミングでは、 array_diff_ukey()は、カスタムキー価値比較関数に基づいて、開発者が2つの配列間のキーの違いを計算できる非常に実用的な機能です。 array_diff_ukey()は強力ですが、さまざまなシナリオで正しく機能することを確認することが重要です。ユニットテストにおけるarray_diff_ukey()関数の正確性と出力を検証することは、その信頼性を確保するための重要なステップです。

この記事では、phpunitを使用してPHPで単体テストを記述して、array_diff_ukey()関数の機能を検証する方法を示します。

1.ARRAY_DIFF_UKEY()を理解する

まず、 array_diff_ukey()の役割を簡単に確認しましょう。この関数は2つの配列を比較し、キーが2番目の配列のキーと同じではない最初の配列の要素を返します。 array_diff()と同様に、 array_diff_ukey()は、デフォルトの比較に等しくなく、カスタムキー値の比較関数に依存しています。

関数の署名は次のとおりです。

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

パラメーター説明:

  • $ array1 :最初の配列。

  • $ array2 :2番目の配列。

  • $ key_compare_func :配列キーを比較するために使用されるコールバック関数。

この関数は、$ array2に表示されない$ array1のすべての要素を含む配列を返します。

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

phpunitフレームワークを使用して、 array_diff_ukey()をテストします。 phpunitをインストールしていない場合は、Composerを介してインストールできます。

 composer require --dev phpunit/phpunit

次の2つの配列があるとします。

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

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

2.1カスタムキー比較関数を作成します

まず、 array_diff_ukey()のカスタムキー比較関数を作成する必要があります。比較関数がキーを整数として扱い、基本的な平等比較を実行するとします。

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

2.2テストクラスの書き込み

次に、phPunitテストクラスを作成して、 array_diff_ukey()の出力を確認します。

 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');

        // 断言 $result キーのみが配列に含まれています 2 そして 3
        $this->assertArrayHasKey(2, $result);
        $this->assertArrayHasKey(3, $result);
        $this->assertCount(2, $result);

        // 値のさらなる検証
        $this->assertEquals('banana', $result[2]);
        $this->assertEquals('cherry', $result[3]);
    }
}

2.3テストコンテンツを説明します

  • array_diff_ukey()$ array1$ array2を比較します。

  • カスタムkey_compare関数は、キーを比較するために使用されます。

  • phpunitのassertarrayhaskey ()を使用して、キー値2と3が結果配列にあることを確認します。

  • AssertCount()は、返された配列に正しい数の要素が含まれていることを確認するために使用されます。

  • 最後に、配列内の各キーの正しい値がAssertequals()によって返されることを確認します。

3.テストを実行します

コマンドラインから、次のコマンドを使用してphpunitテストを実行できます。

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

すべてが正常に機能する場合は、次のような出力が表示されます。

 OK (1 test, 3 assertions)

これは、 array_diff_ukey()関数が正常に機能し、すべてのアサーションがテストで渡されることを示しています。

4.テストはさまざまなシナリオをカバーします

すべての場合にArray_diff_ukey()が正しく機能するようにするために、テストを拡張して、他の境界ケースと例外シナリオをカバーすることができます。例えば:

  • 空の配列をテストします。

  • 同じキーであるが異なる値を含む配列をテストします。

  • カスタムキー比較関数が異なる結果を返す場合をテストします。

この包括的なテストにより、コードが実際のアプリケーションで予期しない問題になる傾向がないことが保証されます。

要約します

phpunitテストを作成することにより、 array_diff_ukey()関数の正しさと出力を簡単に確認できます。単体テストは、コードの正確性を確保するだけでなく、コードが変更されたときに潜在的なエラーを発見するのにも役立ちます。 PHPとPHPunitを使用し続けると、単体テストはコードの品質を改善するための強力なツールであることがわかります。