0

SimpleTestでZend_Controller_Actionのいくつかの拡張機能を単体テストしています。Redirectorアクションヘルパーのsetメソッドを使用してリダイレクトURLを設定し、次にRedirectorのredirectAndExit()メソッドを使用してプロセスの後半で実際にリダイレクトできるようにしたいと思います。このプロセスは、ドキュメントを読んだり、アクションコントローラー、リダイレクター、および応答クラスのコードを確認したりすると、期待どおりに機能していないようです。

これが私が書いたUnitTestCaseメソッドです:

  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番目のセットを送信しているのは何ですか?

4

1 に答える 1

0

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

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

于 2010-07-26T07:04:22.293 に答える