현재 위치: > 최신 기사 목록> 테스트 환경에서 다양한 입력 및 출력 상황에서 Array_Diff ()를 시뮬레이션합니다.

테스트 환경에서 다양한 입력 및 출력 상황에서 Array_Diff ()를 시뮬레이션합니다.

M66 2025-06-06

php에서 array_diff ()는 첫 번째 배열에 존재하지만 다른 배열에는 존재하지 않는 배열의 차이 세트와 반환 값을 비교하는 매우 실용적인 기능입니다. 다양한 시나리오에서 코드가 올바르게 수행되도록하려면 테스트 환경에서 Array_Diff () 의 다양한 입력 및 출력 조건을 시뮬레이션하고 확인해야합니다. 이 기사를 사용하면 이러한 테스트를 효과적으로 수행하는 방법을 이해하기 위해 단계별로 진행됩니다.

1. 기능 소개

Array_Diff () 의 함수 프로토 타입은 다음과 같습니다.

 array array_diff(array $array, array ...$arrays)

이 함수는 다른 $ 배열 에 표시되지 않는 $ 배열 의 모든 값을 포함하는 배열을 반환합니다 (키 이름이 아닌 값 만 비교).

예:

 $a = ['apple', 'banana', 'cherry'];
$b = ['banana', 'grape'];
$result = array_diff($a, $b);
// 산출:['apple', 'cherry']

2. 왜 테스트합니까?

Array_Diff () 가 내장 함수이더라도 동작에 전적으로 의존 할 수 있다는 의미는 아닙니다. 실제 개발에서 우리는 종종 키 이름, 다차원 배열, 혼합 유형 값 등과 같은 다양한 복잡한 구조를 통과하므로 테스트가 도움이 될 수 있습니다.

  • 유형 오류를 피하십시오

  • 기능 동작 경계를 이해합니다

  • 비즈니스 논리가 특정 행동에 의존하는지 확인하십시오

3. 테스트 환경을 준비하십시오

다음 두 가지 방법을 사용하여 테스트 환경을 구축 할 수 있습니다.

1. 지역 개발 환경 (PHP> = 7.4 권장)

다음 도구로 신속하게 구축 할 수 있습니다.

  • XAMPP 또는 MAMP

  • PHP 내장 서버 :

 php -S localhost:8000

2. 온라인 테스트 플랫폼

예를 들어, https://sandbox.m66.net/php-test 에서 코드 스 니펫을 실행하여 논리를 신속하게 확인하십시오.

4. 여러 테스트 상황을 시뮬레이션합니다

우리는 가장 일반적인 사용 사례에서 경계 사례로 하나씩 테스트합니다.

1. 간단한 문자열 비교

 $a = ['red', 'green', 'blue'];
$b = ['green', 'yellow'];
$result = array_diff($a, $b);
print_r($result);
// 预期산출:['red', 'blue']

2. 키 이름으로 배열을 비교하십시오

 $a = ['a' => 'apple', 'b' => 'banana'];
$b = ['x' => 'banana'];
$result = array_diff($a, $b);
print_r($result);
// 预期산출:['a' => 'apple'],원래 키 이름을 유지하십시오

3. 문자열과 값을 혼합하십시오

 $a = [1, '2', 3];
$b = ['1', 2];
$result = array_diff($a, $b);
print_r($result);
// 산출:아마도 [0 => 1, 2 => 3],비교할 때는 비 스트릭 유형이기 때문입니다

4. 다중 배열 입력

 $a = ['php', 'js', 'python'];
$b = ['js'];
$c = ['python'];
$result = array_diff($a, $b, $c);
print_r($result);
// 산출:['php']

5. 빈 배열 테스트

 $a = [];
$b = ['x', 'y'];
$result = array_diff($a, $b);
print_r($result);
// 산출:빈 배열 []

6. 중복 값이있는 배열

 $a = ['apple', 'banana', 'apple'];
$b = ['banana'];
$result = array_diff($a, $b);
print_r($result);
// 산출:['apple', 'apple']

5. 자동 테스트 작성 (PHPUNIT 사용)

PhPunit을 사용하여 테스트 방법을 작성하여 자동으로 동작을 확인할 수 있습니다.

 use PHPUnit\Framework\TestCase;

class ArrayDiffTest extends TestCase
{
    public function testStringDiff()
    {
        $a = ['a', 'b', 'c'];
        $b = ['b'];
        $this->assertEquals(['a', 'c'], array_values(array_diff($a, $b)));
    }

    public function testMixedTypes()
    {
        $a = [1, '2', 3];
        $b = ['1', 2];
        $expected = [0 => 1, 2 => 3];
        $this->assertEquals($expected, array_diff($a, $b));
    }

    public function testEmptyArray()
    {
        $a = [];
        $b = ['x'];
        $this->assertEmpty(array_diff($a, $b));
    }
}

6. 요약

테스트 환경에서 다양한 유형의 입력을 조롱함으로써 Array_Diff () 의 동작 방식을 깊이 이해할 수 있습니다. 이 사전 예방 적 테스트 프로세스는 잠재적 인 문제를 식별하는 데 도움이 될뿐만 아니라보다 강력한 코드를 작성하는 데 도움이 될 수 있습니다. 특히 대규모 프로젝트에서 안정적인 데이터 구조 및 신뢰할 수있는 차동 처리 기능이 데이터 비교 및 ​​스크리닝과 같은 논리의 기초입니다.

기억하십시오 : 테스트는 시간 낭비가 아니지만 향후 디버깅 시간을 절약합니다.