PHPUnitManual:8

From 흡혈양파의 번역工房
Jump to: navigation, search
제8장. 데이터베이스 테스트

초급, 중급을 대상으로 한 단위 테스트 샘플은, 사용하는 언어에 관계없이 테스트하기 쉬운 로직에 관한 단순한 테스트들 뿐입니다. 데이터베이스를 사용하는 일반적인 어플리케이션에는 적합하지 않습니다. 예를 들어, Wordpress 나 TYP03, 혹은 Symfony 로 Doctrine 이나 Propel 등을 사용하게 되면 PHPUnit 의 테스트가 사용하기 어렵다고 느끼게 될 것입니다. 데이터베이스와 이들 라이브러리가 밀접하게 관련되어 있기 때문입니다.


매일의 업무나 프로젝트에서도 느끼셨을 것입니다. PHPUnit 에 관한 지식을 구사하여 작업을 진행하려고 할 때, 다음과 같은 문제 때문에 고생한 적이 있었을 것입니다.


테스트하려는 메소드가 대규모 JOIN 을 실행한 데이터를 사용하여 중요한 결과를 도출한다.


하나의 비지니스 로직 안에 SELECT, INSERT, UPDATE, DELETE 가 섞여서 실행되고 있다.


둘 이상의 (일반적으로 보다 많은) 테이블에 초기 데이터를 준비하지 않으면 해당 메소드를 테스트할 수 없다.


DbUnit 확장을 사용하면, 테스트용 데이터베이스의 셋업을 단순화할 수 있고, 데이터베이스 조작 후의 내용도 검증할 수 있습니다. 인스톨 방법은 다음과 같습니다.

localhost# pear install phpunit/DbUnit


Notes