문제

i 단위는 Zend_Controller_Action의 일부 확장을 간단히 테스트합니다. 리디렉터 액션 도우미의 설정된 메서드를 사용하여 리디렉션 URL을 설정할 수 있기를 원한 다음 Redirector의 redirectandexit () 메서드를 사용하여 실제로 프로세스에서 나중에 리디렉션합니다. 이 프로세스는 문서를 읽고 조치 컨트롤러, 리디렉터 및 응답 클래스의 코드를보고 예상하는 것으로 보이는 것처럼 보입니다.

여기에 내가 작성한 방법은 다음과 같습니다.

  public function testSetGoToUrl() {

    $request    = new Zend_Controller_Request_Http();
    $response   = new Zend_Controller_Response_Http();
    $controller = new App_Zend_Controller_Action($request, $response, array());

    $controller->getHelper('redirector')->setGoToUrl('/');

  }
.

app_zend_controller_action 클래스는 Zend_Controller_action의 추상 클래스의 구체적인 확장일 일뿐입니다. 내가 여기서하고있는 것은 컨트롤러를 인스턴스화하고 리디렉션 URL을 설정하는 것입니다. SimpleTest Reporter는 예상대로 헤더를 먼저 보내고 있습니다. 그러나이 테스트 방법은 "헤더를 보낸"예외를 생성하고 이유를 이해하지 못합니다. 이 상황에서 호출되는 run () 또는 dispatch () 메소드를 알지 못합니다.

두 번째 헤더 세트를 보내는 것이 무엇입니까?

도움이 되었습니까?

해결책

테스트하는 동안 Zend_Controller_Response_HttpTestCaseZend_Controller_Request_HttpTestCase를 사용해야합니다.
Zend_Controller_Response_HttpTestCase::sendHeaders()는 실제 header() 문을 실행하는 대신 전송되는 모든 헤더의 배열을 반환합니다.

Zend_Test_PHPUnit_ControllerTestCase에서도 사용됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top