array_change_key_case()は、配列内のすべてのキーの場合を変更するphpの共通関数です。この関数は、配列キー名のケースの一貫性を確保する必要がある場合に非常に便利です。ただし、単体テストでは、この関数がさまざまな状況で正しく実行できることを確認する必要があります。この記事では、phpunitを使用してarray_change_key_case()関数をユニットテストする方法について説明します。
array_change_key_case()関数は、2つのパラメーターを受け入れます。
配列:処理する配列。
ケース(オプション):大文字の変換方法を指定します。デフォルト値はcase_lowerです。これは、小文字への変換を意味します。 case_upperは大文字に渡すことができます。
文法:
array_change_key_case(array $array, int $case = CASE_LOWER): array
例:
$array = [
"FirstName" => "John",
"LastName" => "Doe"
];
print_r(array_change_key_case($array, CASE_LOWER));
出力:
Array
(
[firstname] => John
[lastname] => Doe
)
次に、phpunitテストケースを書き、 array_change_key_case()が適切に機能するようにしましょう。テストしたいのは、配列のすべてのキーを小文字または大文字に変換することであるとします。
まず、phpunitがインストールされていることを確認してください。まだインストールしていない場合は、Composerを介してインストールできます。
composer require --dev phpunit/phpunit ^9
PHPunitテストでは、テストクラスを作成し、その中にいくつかのテスト方法を定義する必要があります。簡単な例を次に示します。
<?php
use PHPUnit\Framework\TestCase;
class ArrayChangeKeyCaseTest extends TestCase
{
// アレイキー名を小文字に変換します
public function testArrayChangeKeyCaseToLower()
{
$input = [
"FirstName" => "John",
"LastName" => "Doe"
];
$expected = [
"firstname" => "John",
"lastname" => "Doe"
];
$result = array_change_key_case($input, CASE_LOWER);
$this->assertEquals($expected, $result);
}
// アレイキー名を大文字に変換します
public function testArrayChangeKeyCaseToUpper()
{
$input = [
"firstName" => "John",
"lastName" => "Doe"
];
$expected = [
"FIRSTNAME" => "John",
"LASTNAME" => "Doe"
];
$result = array_change_key_case($input, CASE_UPPER);
$this->assertEquals($expected, $result);
}
// 空の配列をテストします
public function testArrayChangeKeyCaseWithEmptyArray()
{
$input = [];
$result = array_change_key_case($input, CASE_UPPER);
$this->assertEquals([], $result);
}
// でテストします URL キーの配列
public function testArrayChangeKeyCaseWithURL()
{
$input = [
"UserURL" => "http://m66.net/profile",
"ApiURL" => "https://m66.net/api"
];
$expected = [
"userurl" => "http://m66.net/profile",
"apiurl" => "https://m66.net/api"
];
$result = array_change_key_case($input, CASE_LOWER);
$this->assertEquals($expected, $result);
}
}
testarraychangekeycasetolower() :アレイのキーを小文字に変換するテスト。
testarraychangekeycasetoupper() :アレイのキーを大文字に変換するテスト。
testarraychangekeycasewithemptyarray() :空の配列に動作をテストします。
testarraychangekeycasewithurl() :変換されたキー名が小文字であり、URLの値が変更されていないことを確認するために、URLキーを使用して配列をテストします。
テストディレクトリにテストファイルを保存し、次のコマンドを使用してphpunitテストを実行します。
./vendor/bin/phpunit --bootstrap vendor/autoload.php tests/ArrayChangeKeyCaseTest
すべてが正常に機能する場合は、すべてのテストの出力が合格することがわかります。
phpunitを使用することにより、 Array_change_key_case()関数が複数のシナリオで予想どおりに機能するようにすることができます。単純なキー名のケース変換であろうと、URLを含む複雑な配列であろうと、正しい単体テストは、さまざまな状況で私たちのニーズを満たすことを保証できます。さまざまな種類の入力をテストすることにより、関数の動作をよりよく理解し、コードの堅牢性を確保することができます。