0

以下の設定
では、ビュースクリプトをデフォルト
index/instead-of-hello.phtmlではなく異なるものにするコントローラーアクション(index / hello)があります。index/hello.phtml

public function helloAction()
{
    $this->renderScript('index/instead-of-hello.phtml');
}

アクションが実際にレンダリングすることを単体テストしたいと思います index/instead-of-hello.phtml

public function testHelloAction()
{
    $params = array('action' => 'hello', 'controller' => 'Index', 'module' => 'default');
    $urlParams = $this->urlizeOptions($params);
    $url = $this->url($urlParams);
    $this->dispatch($url);
    $renderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
    $this->assertEquals('index/instead-of-hello.phtml', $renderer->getViewScript());
}

renderer->getViewScript()実際にレンダリングされたスクリプトではなく、デフォルトでレンダリングされるスクリプトが返されるため、このテストは失敗します。

1) IndexControllerTest::testHelloAction
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-index/instead-of-hello.phtml
+index/hello.phtml

スクリプトindex/instead-of-hello.phtmlが実際にレンダリングされたことをどのようにテストできますか?

上記の例では、ZendFramework1.12が使用されています。

4

1 に答える 1

1

試す:

$this->render('index/instead-of-hello.phtml');

ドキュメントからの説明は次のとおりです。

$this->renderScript()

このメソッドを使用する場合、ViewRendererはスクリプト名の自動決定を行いませんが、代わりに$ script引数をビューオブジェクトのrender()メソッドに直接渡します。

于 2012-11-22T16:16:24.170 に答える