2009-08-26 4 views
6

Jestem przyzwyczajony do pisania testów jednostkowych w Zend Framework 1.9 przy użyciu PHPUnit_Framework_TestCase dla mojej aplikacji.Jak bootstrapować Zend_Test_PHPUnit_ControllerTestCase z Zend_Application?

Teraz próbuję napisać test jednostkowy oparty na Zend_Test_PHPUnit_ControllerTestCase za pomocą ładowania początkowego przez Zend_Application Zend Framework. Ale nie mogę go uruchomić.

Oto mój przykład jałowy:

class FamilyControllerTest extends Zend_Test_PHPUnit_ControllerTestCase 
{ 

    public $application; 

    public function setUp() 
    { 
     $this->bootstrap = array($this, 'appBootstrap'); 
     parent::setUp(); 
    } 

    public function appBootstrap() 
    { 
     $this->application = new Zend_Application(
      APPLICATION_ENV, 
      APPLICATION_PATH . '/configs/application.ini' 
     ); 
     $this->application->bootstrap(); 
    } 

    public function testFooOverviewAction() 
    { 
     $this->dispatch('/foo/overview'); 
     $this->assertQueryContentContains('div', 'Silvan'); 
    } 
} 

W oficjalnej dokumentacji są tylko przykłady, które Bootstrap środowiska testowego przy użyciu wtyczek inicjalizacji jak to explained in the official manual.

Wszelkie pomysły?

Odpowiedz

2

Prawie już go masz, ale musisz przypisać bootstrap jako parametr do instancji kontrolera frontowego w zestawie testowym - tak jak automatycznie robi to Zend_Application w normalnym środowisku. W swoim setUp() dodaj następującą linię:

$this->getFrontController()->setParam('bootstrap', $this->application->getBootstrap()); 
+0

Świetnie. Pierwsze pytanie, które zadałem na Stackoverflow. Dostałem poprawną odpowiedź w ciągu zaledwie 4 godzin. Wielkie dzięki! –