> 백엔드 개발 > PHP 튜토리얼 > PHP로 단위 테스트를 수행하는 방법은 무엇입니까?

PHP로 단위 테스트를 수행하는 방법은 무엇입니까?

WBOY
풀어 주다: 2024-04-19 11:33:02
원래의
481명이 탐색했습니다.

단위 테스트는 소프트웨어의 가장 작은 구성 요소(예: 함수, 메서드)를 확인하며, PHP는 PHPUnit 프레임워크를 통해 단위 테스트할 수 있습니다. 먼저 PHPUnit을 설치한 다음 테스트 클래스(TestCase에서 확장)를 생성한 다음 "test"로 시작하는 테스트 메서드를 작성하고 두 값이 동일하다고 주장하기 위해 AssertEquals를 사용합니다. 실제 사례에서 StringUtilsTest.php는 StringUtils 클래스의 ucfirst() 메서드를 테스트합니다. 모의 객체는 데이터베이스 종속성 시뮬레이션과 같은 코드를 격리하는 데 사용됩니다. 샘플 코드는 PHPUnit을 사용하여 HttpRequest::get() 메서드를 테스트하고, 모의 개체를 통해 종속성의 모의 버전을 만들고, 모의 반환 값을 설정하고, 서비스 메서드 호출을 확인하는 방법을 보여줍니다.

如何使用 PHP 进行单元测试?

PHP를 사용한 단위 테스트

단위 테스트는 소프트웨어의 가장 작은 독립 구성 요소(단위)인 기능, 메서드 또는 클래스를 검사하는 소프트웨어 테스트 기술입니다.

PHPUnit 설치

PHPUnit은 널리 사용되는 PHP 단위 테스트 프레임워크입니다. 설치하려면 다음 Composer 명령을 실행하세요.

composer require --dev phpunit/phpunit
로그인 후 복사

테스트 클래스 만들기

각 테스트 클래스의 이름은 "Test" 접미사로 지정되며 PHPUnitFrameworkTestCase 클래스에서 확장됩니다. 작성: PHPUnitFrameworkTestCase 类:

class SomeClassTest extends PHPUnit\Framework\TestCase
{
    // ...
}
로그인 후 복사

编写测试方法

每个测试方法都以 "test" 开头,后面跟着要测试的功能的名称:

public function testAddNumbers()
{
    $result = someFunction(1, 2);
    $this->assertEquals(3, $result);
}
로그인 후 복사

assertEquals 方法断言两个值相等。

运行测试

要运行测试,请使用 PHPUnit 命令:

vendor/bin/phpunit
로그인 후 복사

实战案例:测试字符串工具类

考虑一个名为 StringUtils 的辅助类,它提供一个 ucfirst

class StringUtilsTest extends PHPUnit\Framework\TestCase
{
    public function testUcfirst()
    {
        $string = 'hello world';
        $result = StringUtils::ucfirst($string);
        $this->assertEquals('Hello world', $result);
    }
}
로그인 후 복사

테스트 방법

각 테스트 방법은 "test"로 시작하고 그 뒤에 테스트할 기능의 이름이 옵니다:

class HttpServiceTest extends TestCase
{
    public function testGetRequest()
    {
        $request = $this->getMockBuilder(HttpRequest::class)
            ->onlyMethods(['get'])
            ->getMock();

        $request->method('get')
            ->with('name')
            ->willReturn('John Doe');

        $service = new HttpService($request);

        $this->assertEquals('John Doe', $service->getRequest('name'));
    }
}
로그인 후 복사
assertEquals 방법은 두 값이 동일하다고 주장합니다.

테스트 실행

테스트를 실행하려면 PHPUnit 명령을 사용하세요. rrreee

실제 예: 문자열 유틸리티 클래스 테스트

🎜🎜를 제공하는 <code>StringUtils라는 도우미 클래스를 고려해보세요. ucfirst 메소드를 사용하여 문자열의 첫 글자를 대문자로 만듭니다. 이 접근 방식을 테스트하기 위해 단위 테스트를 작성할 수 있습니다. 🎜🎜🎜StringUtilsTest.php🎜🎜rrreee🎜🎜모의 사용🎜🎜🎜Mocks를 사용하면 외부 종속성의 동작을 시뮬레이션하여 단위 테스트에서 코드를 격리할 수 있습니다. 예를 들어, 데이터베이스에 의존하는 클래스를 테스트하는 경우 실제로 쿼리하지 않고도 모의 데이터베이스를 사용하여 데이터베이스를 시뮬레이션할 수 있습니다. 🎜🎜🎜샘플 코드: PHPUnit을 사용하여 getRequest() 메서드 테스트🎜🎜rrreee🎜이 예제에서는 모의 객체를 사용하여 모의 종속성 버전을 생성하는 방법, 모의 반환 값을 설정하는 방법 및 다음과 같은 메서드 호출을 확인하는 방법을 보여줍니다. 서비스. 🎜

위 내용은 PHP로 단위 테스트를 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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