2010-05-25 5 views

답변

7

그냥 기록을 위해, 나는 이것이 당신이 참조하는 코드의 콘크리트 조각 추측 : 단위 테스트에서

class ControllerTestCase extends Zend_Test_PHPUnit_ControllerTestCase 
{ 
    public $application; 

    public function setUp() 
    { 
     $this->application = new Zend_Application(
      APPLICATION_ENV, 
      APPLICATION_PATH . '/config/settings.ini' 
     ); 

     $this->bootstrap = array($this, 'bootstrap'); 
     parent::setUp(); 
    } 

    public function tearDown() 
    { 
     Zend_Controller_Front::getInstance()->resetInstance(); 
     $this->resetRequest(); 
     $this->resetResponse(); 

     $this->request->setPost(array()); 
     $this->request->setQuery(array()); 
    } 

    public function bootstrap() 
    { 
     $this->application->bootstrap(); 
    } 
} 

setUptearDown 방법은

하는 데 사용됩니다

알려진 상태로 세계를 설정하고 다음 원래 상태로 되돌립니다. w 암탉은 검사가 완료되었습니다. 이 알려진 상태를 픽스쳐 테스트라고합니다.

비품을 처리하는 방법은 xUnit 라이브러리마다 다를 수 있지만 개념은 동일합니다. phpunit을 설명서에 또한 fixtures chapter를 참조하십시오

phpunit을가 설정 코드를 공유를 지원합니다. 테스트 메소드가 실행되기 전에 템플릿 메소드 setuch()는 이 호출됩니다. setUp()은 테스트 대상 객체 인 을 생성하는 곳입니다. 테스트 방법에 이 완료되면 에 성공했는지 실패했는지에 관계없이 tearDown()이라는 다른 템플릿 메서드 이 호출됩니다. tearDown()은 테스트 한 객체 인 을 정리하는 곳입니다. tearDown 각 실행 후 처리 동안

따라서 phpunit을는 전에 테스트 케이스 클래스에 포함되는 모든 단일 시험 방법을 setUp 방법을 실행 처리한다.

젠드 프레임 워크는 기능 테스트을 실행하기 위해 PHPUnit 위에 추가 레이어를 제공합니다. 이것은 소스 코드의 개별 단위가 아닌 기능에 대한 블랙 박스 테스트입니다. 이는 Zend_Test_PHPUnit_ControllerTestCase를 확장하여 애플리케이션 리소스에 대한 액세스가 보장되도록합니다.

이 특정 예에서 테스트 사례의 모든 테스트가 실행되기 전에 응용 프로그램이 부트 스트랩됩니다. 원시 단위 테스트 (다른 ​​테스트 케이스의 일부)에서와 같이 어디에서나 응용 프로그램 자원이 필요 없다는 점을 고려하면 이는 의미가 있습니다.

관련 문제