Zend RedirectorアクションヘルパーのセットRedirectURLメソッドを使用する

StackOverflow https://stackoverflow.com/questions/3321036

  •  28-09-2020
  •  | 
  •  

質問

SimpleTestでZend_Controller_actionのいくつかの拡張をテストしています。リダイレクタアクションヘルパーの設定メソッドを使用してリダイレクトURLを設定してから、リダイレクタの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のレポーターは予想どおりにヘッダーを送信しています。しかし、このテスト方法は「ヘッダーを送信された」例外を生成し、理由は理解していません。私はこの状況で呼び出されているrun()またはdispatch()メソッドを認識していません。

2番目のヘッダのセットの送信について何が送信されていますか?

役に立ちましたか?

解決

テスト中は、Zend_Controller_Response_HttpTestCaseZend_Controller_Request_HttpTestCaseを使用する必要があります。
Zend_Controller_Response_HttpTestCase::sendHeaders() Real header()ステートメントを実行する代わりに送信されるすべてのヘッダーの配列を返します。

これらはZend_Test_PHPUnit_ControllerTestCaseでも使用されています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top