Zend_Test_PHPUnit_ControllerTestCase: Test görünüm parametreleri değil render çıktı

2 Cevap php

Benim denetleyicileri test Zend_Test_PHPUnit_ControllerTestCase kullanıyorum. Bu sınıf render çıkışını test etmek için çeşitli yollar sağlar, ama benim bakış komut yer almak istemiyorum. Ben görünümün değişkenler test etmek istiyorum. access controllers view nesne için bir yolu var mı?

İşte bir örnek ben yapmaya çalışıyorum, ne olduğunu:

<?php
class Controller extends Zend_Controller_Action
{
    public function indexAction()
    {
        $this-view->foo = 'bar';
    }
}

class ControllerTest extends Zend_Test_PHPUnit_ControllerTestCase
{

    public function testShowCallsServiceFind()
    {
        $this->dispatch('/controller');

        //doesn't work, there is no such method:
        $this->assertViewVar('foo', 'bar');

        //doesn't work, end_Test_PHPUnit_ControllerTestCase has no getView method:
        $this->assertEquals(
            'bar',
            $this->getView()->foo
        );

    }
}

2 Cevap

Eğer gerçekten görünümü karşı savunmak gerekir, Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->view ile almak ve buna karşı iddia.

Zend_Test niyeti ancak bir XPath sorgusu veya benzeri bir şey kullanarak, gerçek tepkisine karşı iddia olduğunu ifade etti. Bu tam yerine bunun sadece bir parçası, uygulama test sağlayacaktır.

sadece görünümü bir var içerdiğini iddia ve verilen bir şey eşit olduğunu eğer, gerçekten doğru bir şekilde kullanılmakta olduğu test değildir.

1) Zend_Test_PHPUnit_ControllerTestCase::_resetPlaceholders() Zend_Registry::getInstance() 'de elde Singelton kullanır ve tutucuları için arama yapar. Belki bu davranışı taklit olabilir.

2) $view = Zend_Layout::getMvcInstance()->getView() zaten denedin mi? Ben denetleyicileri test değil henüz ama test durumlarda singeltons içerdiğinden, belki de böyle bir uzaklarda tahmin olmaz.