소프트웨어 개발 과정에서 테스트는 필수적인 부분입니다. 테스트는 개발자가 코드가 올바른 방식으로 실행되고 구성 요소가 함께 작동하는지 확인하는 데 도움이 됩니다. PHP 개발 프로세스에서 PHPUnit은 개발자가 테스트를 자동화하고 테스트 결과를 계산하는 데 도움이 되는 널리 사용되는 테스트 도구입니다.
최신 버전의 PHPUnit은 공식 웹사이트에서 다운로드하여 Composer를 사용하여 설치할 수 있습니다. PHPUnit을 다운로드하고 설치한 후 phpunit.xml 파일을 구성하고 PHPUnit에 대한 설정을 포함할 수 있습니다. phpunit.xml의 구문은 다양한 설정, 매개변수 및 장치를 정의할 수 있는 XML 태그와 유사합니다.
위의 phpunit.xml 파일에는 사용 가능한 많은 옵션이 있으며 가장 중요한 옵션 중 일부는 다음과 같습니다.
위 옵션 외에도 설정할 수 있는 다른 옵션이 많이 있으며, PHPUnit 문서에서 관련 구성 옵션을 찾을 수 있습니다.
PHPUnit은 유효한 PHP 코드를 테스트할 수 있습니다. 테스트 계획은 코드를 Assert 키워드로 시작하는 테스트 매크로로 캡슐화합니다. PHPUnit은 이러한 테스트 매크로를 실행하여 코드가 예상대로 실행되는지 자동으로 묻습니다. 다음은 간단한 테스트입니다.
<?php use PHPUnitFrameworkTestCase; class MyTest extends TestCase { public function testTrueIsTrue() { $this->assertTrue(true); } } ?>
이 예에서 PHPUnit의 TestCase 클래스는 테스트를 정의하는 데 사용되며 모든 테스트는 기본적으로 이 클래스에서 상속됩니다. 이 테스트에는 testTrueIsTrue라는 함수가 하나만 있으며 실제 표현식을 테스트하기 위해 AssertTrue를 사용합니다. 결과는 테스트 결과를 나타내는 "OK" 또는 "FAIL" 문자열을 반환합니다.
assertTrue 외에도 PHPUnit은 AssertTrue와 비교하지만 배열 및 문자열 값을 비교할 수 있는assertContains와 같은 다른 많은 테스트 메서드도 제공합니다.
테스트를 작성한 후 PHPUnit을 실행하여 테스트를 실행할 수 있습니다. 명령줄에서 PHPUnit을 실행하려면 다음 명령을 사용할 수 있습니다:
phpunit [옵션] [인수]
여기서 options는 PHPUnit에 대한 일부 옵션이고 인수는 실행해야 하는 테스트를 지정합니다. 인수를 사용하지 않으면 PHPUnit은 실행할 모든 테스트를 현재 디렉터리에서 찾습니다. 테스트가 여러 개인 경우 와일드카드를 사용하여 실행할 특정 테스트를 지정할 수 있습니다.
PHPUnit은 테스트 통과 및 실패율은 물론 개별 테스트 사례의 세부 정보를 포함한 모든 테스트 결과를 출력합니다. 출력에서 각 테스트의 이름, 실행 시간 및 결과를 볼 수 있습니다. 출력에는 각 테스트의 코드와 테스트 실패 이유를 포함한 자세한 정보도 포함됩니다.
PHPUnit의 출력은 개발자가 다양한 테스트 사례가 어떻게 실행되는지 빠르게 이해하고 코드가 모든 상황에서 예상대로 실행되도록 보장하므로 매우 유용합니다.
다음은 PHPUnit을 사용하여 웹 애플리케이션을 테스트하는 예입니다. 이 예에서는 사용자가 문자 메시지를 저장하고 검색할 수 있는 API를 제공하는 간단한 웹 애플리케이션을 테스트합니다.
먼저 사용자가 메시지를 성공적으로 보낼 수 있는지 테스트하고 싶습니다. 여기에는 올바른 URL이 호출되는지 확인하고 응답에 올바른 HTTP 상태 코드가 포함되어 있는지 확인하는 등 다양한 측면이 포함됩니다. 테스트 코드는 다음과 같습니다.
<?php use PHPUnitFrameworkTestCase; class WebAppTest extends TestCase { private $http; protected function setUp(): void { $this->http = new GuzzleHttpClient(['base_uri' => 'http://localhost:8000']); } protected function tearDown(): void { $this->http = null; } public function testPostMessage() { $response = $this->http->request('POST', '/message', [ 'form_params' => [ 'message' => 'Hello!' ] ]); $this->assertEquals(200, $response->getStatusCode()); $this->assertContains('{"success": true}', $response->getBody()); } public function testGetMessage() { $response = $this->http->request('GET', '/message'); $this->assertEquals(200, $response->getStatusCode()); $this->assertContains('{"message": "Hello!"}', $response->getBody()); } } ?>
이 예에서는 먼저 웹 애플리케이션에 연결하는 클라이언트를 설정합니다. 각 테스트가 깨끗한 환경에서 시작되고 끝나도록 setUp 및 TearDown 메서드를 재정의합니다. 그런 다음 두 가지 테스트를 작성했습니다. 하나는 메시지를 보내기 위한 POST 요청을 테스트하고 다른 하나는 메시지를 검색하기 위한 GET 요청을 테스트했습니다. 두 경우 모두 결과 HTTP 상태 코드와 응답 본문을 비교합니다. 이렇게 하면 메시지 저장이나 검색이 실패할 경우 실패한 테스트 결과를 받게 되어 애플리케이션이 예상대로 작동하는지 확인할 수 있습니다.
요약
PHPUnit은 PHP 개발에서 가장 널리 사용되는 테스트 프레임워크 중 하나입니다. 개발자가 테스트 프로세스 중 테스트 결과에 대한 통계를 보다 쉽게 수행하고 테스트를 수행하는 데 도움이 되는 많은 유용한 테스트 도구와 옵션을 제공합니다. 실제로 개발자는 Git과 같은 버전 제어 도구를 사용할 때 PHPUnit을 사용하여 테스트를 작성하고 버전 제어에 테스트 코드를 추가하는 것이 좋습니다. 이를 통해 코드의 신뢰성이 보장되고 코드 오류가 발생할 경우 시기적절하게 감지하고 복구할 수 있습니다.
위 내용은 PHP 개발에서 테스트 결과 통계를 위해 PHPUnit을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!