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