유닛 테스트가 엄청 필요함을 알면서도 그동안 제대로 도입을 하지 않았다. 이제 제대로 테스트 기반으로 프로젝트를 진행해볼까?
우분투 계열의 리눅스를 사용하는 나는 패키지 매니저를 통해 쉽게 설치 가능하다. PhpUnit 관련 패키지는 다음과 같이 제공된다.
phpunit - Unit testing suite for PHP5 phpunit-mock-object - Mock Object library for PHPUnit phpunit-selenium - Selenium RC integration for PHPUnit phpunit-story - extension to facilitate Behaviour-Driven Development
물론 패키지 설치를 할 수도 있지만, 웹에 흔히 가이드되는 다음 내용도 참고로 알아 두자.
wget https://phar.phpunit.de/phpunit.phar chmod +x phpunit.phar sudo mv phpunit.phar /usr/local/bin/phpunit phpunit --version
테스트는 언제나 PHPUnit_Framework_TestCase 클래스를 상속받은 나의 테스트 클래스를 작성하는 것 부터 시작한다. 그리고 테스트로 동작되기를 원하는 함수는 무조건 'test'라는 글자로 시작하거나, 주석 영역에 @test
라고 지시를 주어야 한다.
(거의)모든 테스트는 어떤 동작을 수행한 결과가 우리가 예상한 기대와 같은지 체크하는 것이므로, 테스트에선 선언(assertion)이 거의 핵심적인 기능을 담당한다고 볼 수 있다. 프레임워크는 많은 assertion 함수를 제공한다. 그 목록은 Appendix A. Assertions에서 확인할 수 있다. 적절한 곳에 적절한 선언을 사용해 테스트를 진행해보자.
unit_testing 문서를 참고.