PHPUnitManual:8.3

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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