현재 위치: > 최신 기사 목록> 단위 테스트에서 array_diff_ukey ()의 출력을 확인하는 방법

단위 테스트에서 array_diff_ukey ()의 출력을 확인하는 방법

M66 2025-05-14

PHP 프로그래밍에서 Array_diff_ukey ()는 개발자가 사용자 정의 키 값 비교 함수를 기반으로 두 배열 사이의 주요 차이를 계산할 수있는 매우 실용적인 기능입니다. Array_diff_ukey () 는 강력하지만 다른 시나리오에서 올바르게 작동하는지 확인하는 것이 중요합니다. 단위 테스트에서 array_diff_ukey () 함수의 정확성과 출력을 확인하는 것은 신뢰성을 보장하는 중요한 단계입니다.

이 기사에서는 PHPUnit을 사용하여 PHP에서 단위 테스트를 작성하여 Array_Diff_Ukey () 함수의 기능을 확인하는 방법을 보여줍니다.

1. 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 의 모든 요소를 ​​포함하는 배열을 반환합니다.

2. 단위 테스트를 작성하십시오

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

2.1 사용자 정의 키 비교 함수를 만듭니다

먼저 Array_diff_ukey () 에 대한 사용자 정의 키 비교 함수를 만들어야합니다. 비교 함수가 키를 정수로 취급하고 기본 평등 비교를 수행한다고 가정합니다.

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

2.2 테스트 클래스 작성

다음으로, 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]);
    }
}

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을 계속 사용하면 단위 테스트가 코드의 품질을 향상시키는 강력한 도구라는 것을 알게됩니다.