PHPUnitManual:8.3

From 흡혈양파의 번역工房
Jump to: navigation, search
8.3 데이터베이스 테스트의 4단계

데이터베이스 테스트의 4단계

Gerard Meszaros 는 저서 xUnit Test Patterns 에서 단위 테스트를 다음 4단계로 분류합니다.

  • fixture 셋업 (Setup)
  • 테스트 대상 시스템의 실행 (Exercise)
  • 결과 검증 (Verify)
  • 후처리 (Teardown)
Fixture 란?
fixture 란, 어플리케이션이나 데이터베이스의 초기 상태를 말합니다. 테스트를 실행하기 전에 준비해야 합니다.


데이터베이스를 테스트하기 위해서는, 적어도 setup 과 teardown 에서는 테이블에 접속하여 fixture 의 clean-up 이나 insert 를 해야만 합니다. 그렇지만, Database Extension 에서는 위의 4단계를 다음과 같이 바꿀 충분한 이유가 있습니다. 이 work flow 는 각각의 테스트에 관해 실행됩니다.


1. Clean-Up Database

데이터베이스를 사용하는 첫번째 테스트는 언제나 존재할 것입니다. 실제로 해당 테이블에 데이터가 존재할지 아닐지는 알 수 없습니다. PHPUnit 는 지정한 모든 테이블에 TRUNCATE 를 실행하여 테이블을 비웁니다.


2. Set up fixture

PHPUnit 는 fixture 의 각 행을 순차적으로 처리하여 대응되는 테이블에 insert 합니다.


3–5. Run Test, Verify outcome and Teardown

데이터베이스를 리셋하여 초기 상태를 insert 한 뒤, PHPUnit 는 테스트를 실행합니다. 테스트 코드의 이 부분은 Database Extension 를 알고 있을 필요가 없고, 코드에 관한 모든 필요한 테스트를 할 수 있습니다.


테스트 안에서 assertDataSetsEqual() 라는 특수한 검증을 사용할 수도 있습니다. 이 기능은 전적으로 옵션 기능입니다. 자세한 기능은 "Database Assertions" 에서 설명할 것입니다.


Notes