PHP 및 PHPUnit을 사용한 단위 테스트 및 코드 적용 범위

PHPz
풀어 주다: 2023-06-25 13:14:01
원래의
1257명이 탐색했습니다.

소프트웨어 개발이 발전하면서 점점 더 많은 개발자가 단위 테스트의 중요성을 인식하고 있습니다. 단위 테스트는 단일 기능 모듈("유닛"이라고도 함)의 정확성을 테스트하여 코드의 정확성과 안정성을 보장하는 소프트웨어 개발의 일반적인 테스트 방법입니다. 이 기사에서는 PHP 및 PHPUnit을 사용하여 단위 테스트 및 코드 적용 범위를 달성하는 방법을 다룹니다.

PHPUnit은 PHP 코드 테스트를 위한 오픈 소스 테스트 프레임워크입니다. 단위 테스트, 기능 테스트, 통합 테스트를 포함한 다양한 테스트 유형을 지원합니다. 이번 글에서는 단위 테스트에 초점을 맞춰보겠습니다.

단위 테스트와 코드 적용 범위가 왜 필요한가요?

소프트웨어를 개발할 때 우리는 일반적으로 코드를 최대한 테스트하려고 합니다. 단위 테스트는 코드의 정확성을 보장하기 위해 개발 프로세스 중에 지속적으로 테스트할 수 있는 보다 효율적인 테스트 방법입니다. 그 외에도 다음과 같은 장점이 있습니다.

  1. 코드 유지관리성 향상: 단위 테스트를 통해 수정 후 코드의 정확성을 빠르게 확인하여 수정 후 원래 기능이 손상되지 않는지 확인할 수 있습니다.
  2. 코드의 견고성 향상: 각 유닛을 테스트함으로써 코드의 잠재적인 문제와 오류를 발견할 수 있으므로 이러한 문제를 사전에 처리하고 프로덕션 환경에서 문제가 발생하는 것을 방지할 수 있습니다.
  3. 확장 및 리팩터링 비용 절감: 단위 테스트를 사용하면 기존 코드를 수정할 때 문제를 빠르게 찾아 코드 베이스의 변경 사항을 보다 효과적으로 관리할 수 있습니다.

코드 커버리지는 테스트 커버리지를 평가하는 방법입니다. 코드가 얼마나 잘 테스트되었는지 알려줍니다. 예를 들어, 테스트 적용 범위가 60%라면 테스트 코드가 소스 코드의 60%를 포함한다는 의미입니다. 코드 커버리지를 통해 소프트웨어 품질이 높은지, 더 많은 테스트 케이스가 필요한지 여부를 측정할 수 있습니다.

PHPUnit으로 단위 테스트를 시작하세요

계속하기 전에 PHPUnit이 설치되어 있는지 확인해야 합니다. Composer를 통해 설치할 수 있습니다. 프로젝트 디렉터리에 작곡가.json 파일을 만들고 PHPUnit 종속성을 추가합니다.

{
  "require-dev": {
    "phpunit/phpunit": "^7.0"
  }
}
로그인 후 복사

다음 명령을 실행하여 PHPUnit을 설치할 수 있습니다.

composer install --dev
로그인 후 복사

다음으로 간단한 단위 테스트를 작성하는 방법을 보여 드리겠습니다. 기본적인 산술 연산을 수행하는 "계산기"라는 PHP 클래스를 작성한다고 가정해 보세요. 코드는 다음과 같습니다.

class Calculator {
    public function add($a, $b) {
        return $a + $b;
    }

    public function subtract($a, $b) {
        return $a - $b;
    }
}
로그인 후 복사

이제 Calculator 클래스를 테스트할 "CalculatorTest"라는 테스트 클래스를 작성합니다.

use PHPUnitFrameworkTestCase;

class CalculatorTest extends TestCase {
    public function testAdd() {
        $calculator = new Calculator();
        $result = $calculator->add(1, 2);
        $this->assertEquals(3, $result);
    }

    public function testSubtract() {
        $calculator = new Calculator();
        $result = $calculator->subtract(2, 1);
        $this->assertEquals(1, $result);
    }
}
로그인 후 복사

위 코드에서는 PHPUnit에서 제공하는 기본 테스트 방법 중 하나인 AssertEquals()를 사용했습니다. 테스트 값을 예상 값과 비교하고 같지 않으면 예외를 발생시킵니다.

이제 PHPUnit 테스트를 실행하세요:

./vendor/bin/phpunit CalculatorTest.php
로그인 후 복사

모든 테스트가 통과하면 다음 출력이 표시됩니다:

PHPUnit 7.5.1 by Sebastian Bergmann and contributors.

..

Time: 42 ms, Memory: 4.00 MB

OK (2 tests, 2 assertions)
로그인 후 복사

이 예제에서는 약간의 트릭이 사용되었습니다. 이는 Calculator 클래스를 동시에 정의하는 것입니다. 동일한 파일 CalculatorTest.php 및 해당 테스트 클래스 CalculatorTest.

PHPUnit의 기본 테스트 방법 이해

PHPUnit은 다양한 테스트 방법을 제공합니다. 다음은 일부 기본 방법의 사용 예입니다.

  1. assertEquals($expected, $actual, $message): 예상 값을 비교합니다. 실제 값은 동일합니다.
  2. assertTrue($value, $message): 식이 참인지 확인합니다.
  3. assertFalse($value, $message): 식이 false인지 확인합니다.
  4. assertNull($value, $message): 값이 null인지 확인합니다.
  5. assertSame($expected, $actual, $message): 기대값과 실제값이 완전히 동일한지 비교합니다(유형 포함).
  6. assertInstanceOf($expected, $actual, $message): 객체가 특정 클래스의 인스턴스인지 확인합니다.

문서에서 PHPUnit에 대한 더 많은 테스트 방법을 찾을 수 있습니다.

PHPUnit을 사용한 코드 커버리지 테스트

우리는 단위 테스트를 위해 PHPUnit을 사용하는 방법을 살펴보았습니다. 이제 코드 커버리지 테스트를 위해 PHPUnit을 사용하는 방법을 이해하겠습니다.

코드 커버리지를 달성하려면 PHPUnit을 실행할 때 --coverage-html 옵션을 추가해야 합니다. HTML 코드 적용 범위 보고서가 생성됩니다. 다음 명령을 실행하세요.

./vendor/bin/phpunit --coverage-html reports tests
로그인 후 복사

이 명령은 프로젝트의 테스트 디렉터리에 있는 모든 테스트 사례를 실행하고 실행 후 보고서 디렉터리에 코드 적용 범위 보고서를 생성합니다.

이후 브라우저에서 HTML 보고서를 열어 소스 코드 범위를 확인할 수 있습니다.

요약

이 글에서는 단위 테스트와 코드 커버리지를 위해 PHPUnit을 사용하는 방법을 소개했습니다. 단위 테스트 및 코드 적용 범위를 통해 프로젝트 품질과 안정성을 향상하고 확장 및 리팩토링 비용을 줄일 수 있습니다.

PHP 코드를 작성할 때 좋은 단위 테스트를 작성하는 것을 잊지 마세요. 좋은 단위 테스트는 코드 정확성을 확인하고 회귀 오류를 방지하며 코드 견고성을 보장하는 데 사용됩니다. 좋은 테스트 사례를 작성하면 문제를 조기에 파악하고 문제가 발생하기 전에 수정할 수 있습니다.

위 내용은 PHP 및 PHPUnit을 사용한 단위 테스트 및 코드 적용 범위의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿