2009-08-26 22 views
6

我習慣於在我的應用程序中使用PHPUnit_Framework_TestCase在Zend Framework 1.9中編寫單元測試。如何用Zend_Application引導Zend_Test_PHPUnit_ControllerTestCase?

現在我試圖編寫一個基於Zend_Test_PHPUnit_ControllerTestCase的單元測試,通過使用Zend Framework的Zend_Application引導。但我無法運行。

這裏是我的非工作例如:

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'); 
    } 
} 

在官方文檔之外,還有隻有引導使用初始化插件,像它的explained in the official manual測試環境的例子。

任何想法?

回答

2

你已經差不多了,但是你必須在自己的測試套件中將自舉作爲參數分配給前端控制器實例 - 就像Zend_Application自動在正常環境中那樣。在你的setUp()中加入下面一行:

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

太好了。我在Stackoverflow上詢問的第一個問題。我在4個小時內得到了正確的答覆。非常感謝! – 2009-08-27 06:45:49