PHP 프로그래밍에서 Array_diff_ukey ()는 개발자가 사용자 정의 키 값 비교 함수를 기반으로 두 배열 사이의 주요 차이를 계산할 수있는 매우 실용적인 기능입니다. Array_diff_ukey () 는 강력하지만 다른 시나리오에서 올바르게 작동하는지 확인하는 것이 중요합니다. 단위 테스트에서 array_diff_ukey () 함수의 정확성과 출력을 확인하는 것은 신뢰성을 보장하는 중요한 단계입니다.
이 기사에서는 PHPUnit을 사용하여 PHP에서 단위 테스트를 작성하여 Array_Diff_Ukey () 함수의 기능을 확인하는 방법을 보여줍니다.
먼저 Array_diff_ukey () 의 역할을 간단히 검토해 봅시다. 이 함수는 두 개의 배열을 비교하고 첫 번째 배열의 요소를 두 번째 배열의 키와 동일하지 않은 요소를 반환합니다. Array_Diff () 와 유사하게 Array_Diff_ukey ()는 비교와 동일한 기본값이 아닌 사용자 정의 키 값 비교 함수에 의존합니다.
함수 서명은 다음과 같습니다.
array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
$ array1 : 첫 번째 배열.
$ array2 : 두 번째 배열.
$ key_compare_func : 배열 키를 비교하는 데 사용되는 콜백 함수.
이 함수는 $ array2 에 표시되지 않는 $ array1 의 모든 요소를 포함하는 배열을 반환합니다.
phpunit 프레임 워크를 사용하여 array_diff_ukey ()를 테스트합니다. PhPunit을 설치하지 않은 경우 Composer를 통해 설치할 수 있습니다.
composer require --dev phpunit/phpunit
다음 두 배열이 있다고 가정합니다.
$array1 = [
1 => 'apple',
2 => 'banana',
3 => 'cherry'
];
$array2 = [
1 => 'apple',
4 => 'date',
5 => 'elderberry'
];
먼저 Array_diff_ukey () 에 대한 사용자 정의 키 비교 함수를 만들어야합니다. 비교 함수가 키를 정수로 취급하고 기본 평등 비교를 수행한다고 가정합니다.
function key_compare($key1, $key2) {
return $key1 - $key2;
}
다음으로, array_diff_ukey () 의 출력을 확인하기 위해 phpunit 테스트 클래스를 만듭니다.
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]);
}
}
Array_Diff_ukey () 별로 $ array1 및 $ array2를 비교합니다.
사용자 정의 key_compare 함수는 키를 비교하는 데 사용됩니다.
PhPunit의 AsserTarrayHaskey ()를 사용하여 키 값 2와 3이 결과 배열에 있는지 확인하십시오.
AssertCount ()는 반환 된 배열에 올바른 수의 요소가 포함되어 있는지 확인하는 데 사용됩니다.
마지막으로 배열에서 각 키의 올바른 값이 Assertequals () 에 의해 반환되는지 확인합니다.
명령 줄에서 다음 명령을 사용하여 PHPUnit 테스트를 실행할 수 있습니다.
vendor/bin/phpunit --bootstrap vendor/autoload.php tests/ArrayDiffUkeyTest
모든 것이 잘 작동하면 다음과 유사한 출력이 표시됩니다.
OK (1 test, 3 assertions)
이것은 우리의 array_diff_ukey () 함수가 잘 작동하고 모든 어설 션이 테스트에서 전달됨을 보여줍니다.
모든 경우에 Array_diff_ukey () 가 올바르게 작동하는지 확인하려면 다른 경계 사례 및 예외 시나리오를 다루기 위해 테스트를 확장 할 수 있습니다. 예를 들어:
빈 배열을 테스트하십시오.
동일한 키이지만 다른 값이 포함 된 배열을 테스트하십시오.
사용자 정의 키 비교 함수가 다른 결과를 반환하는 경우를 테스트하십시오.
이 포괄적 인 테스트를 통해 코드는 실제 애플리케이션에서 예상치 못한 문제가 발생하지 않도록합니다.
phpunit 테스트를 작성하면 Array_Diff_ukey () 함수의 정확성과 출력을 쉽게 확인할 수 있습니다. 단위 테스트는 코드의 정확성을 보장하는 데 도움이 될뿐만 아니라 코드가 변경 될 때 잠재적 오류를 발견하는 데 도움이됩니다. PHP 및 PHPUnit을 계속 사용하면 단위 테스트가 코드의 품질을 향상시키는 강력한 도구라는 것을 알게됩니다.