PHPUnit은 PHP 프로그래밍 언어용 단위 테스트 프레임워크이다. PHPUnit은 테스트‑주도 개발(Test‑Driven Development, TDD) 및 행동‑주도 개발(Behavior‑Driven Development, BDD) 방식의 구현을 지원한다.
개요
- 개발 및 유지보수: 현재는 프리랜서 및 오픈소스 커뮤니티에 의해 활발히 유지·보수되고 있다.
- 배포 형태: Composer 패키지(
phpunit/phpunit)로 제공되며, PHP 7.2 이상을 지원한다. - 주요 기능
- 테스트 케이스와 테스트 스위트 정의
- 어설션(Assertion) 메서드를 통한 기대값 검증
- 목 객체(Mock Object)와 스텁(Stub) 지원
- 코드 커버리지 분석 (Xdebug 연동)
- 데이터 제공자(Data Provider)를 이용한 파라미터화 테스트
역사
- 초기 버전: 2004년에 Sebastian Bergmann이 개발한 "SimpleTest" 프로젝트의 파생으로 시작되었다.
- 버전 관리: 이후 독립적인 프로젝트로 전환되어 GitHub에서 공개 개발이 진행된다.
- 주요 릴리스: 9.x 버전부터 PHP 8.x와의 호환성을 강화했으며, 최신 버전에서는 PHP 8.2까지 지원한다.
사용 예시
use PHPUnit\Framework\TestCase;
class StackTest extends TestCase
{
public function testPushAndPop()
{
$stack = [];
array_push($stack, 'foo');
$this->assertEquals('foo', array_pop($stack));
}
}
위 예시는 TestCase 클래스를 상속받아 테스트 메서드를 정의하고, assertEquals 어설션을 사용해 결과를 검증한다.
적용 분야
- 애플리케이션 개발: PHP 기반 웹 애플리케이션 및 라이브러리의 단위 테스트에 널리 사용된다.
- CI/CD 파이프라인: Jenkins, GitHub Actions, GitLab CI 등에서 자동 테스트 단계로 통합된다.
참고 문헌
- 공식 문서: https://phpunit.de/
- Composer 패키지 레지스트리: https://packagist.org/packages/phpunit/phpunit
※ 본 내용은 공신력 있는 공식 문서와 널리 인정받는 오픈소스 커뮤니티 자료를 기반으로 작성되었다.