2012-05-04 15 views
3

ユニットテストを書いているのですが、getRequest->getHeader('referer')をZendフレームワーク内で使用するか模擬する必要があります。セッションは、その値に基づいて設定されます。PHPunitテストモックへの適切な方法getRequest-> getHeader( 'referer')

これを正しくテストするにはどうすればよいでしょうか?

コントローラーをモックして、$controller->getRequest->getHeader('referer')のようなヘッダーリクエストを呼び出すか、リクエストオブジェクトをモックする必要がありますか?

これは単体テストなので、コードが正しく動作するようにこの動作を嘲笑しているだけなので、どのようにURLリクエストヘッダーをシミュレートするのかはわかりません。

答えて

1

独自の要求オブジェクトをフレームワークに挿入する必要があります。 Zend_Controller_Request_HttpTestCaseを使用することをお勧めします。これは、さまざまなプロパティ(ヘッダー、クエリ、本文、URI、Cookieなど)を完全に柔軟に設定できるようにするためです。独自のリファラーを設定し、アプリケーションの反応をテストすることができます。

+0

$ this - > _ mockRequest = $ this-> getMockBuilder( 'Zend_Controller_Request_HttpTestCase') - > disableOriginalConstructor() - > getMock(); – jsteinmann

+0

を設定したり取得したりすることはできますか?私はこれがコントローラアクションヘルパーであることを言及する必要があります – jsteinmann