如何用Zend_Application引导Zend_Test_PHPUnit_ControllerTestCase?

Sil*_*ann 6 php zend-framework

我习惯于在PHPUnit_Framework_TestCase我的应用程序中使用Zend Framework 1.9编写单元测试.

现在我试图Zend_Test_PHPUnit_ControllerTestCase通过使用Zend_ApplicationZend Framework 的引导来编写单元测试.但我无法让它运行.

这是我的非工作示例:

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');
    }
}
Run Code Online (Sandbox Code Playgroud)

在官方文档中,只有使用初始化插件来引导测试环境的示例,如官方手册中所述.

有任何想法吗?

jas*_*son 2

您几乎已经完成了,但是您必须将引导程序作为参数分配给测试套件中的前端控制器实例 - 就像Zend_Application在正常环境中自动执行的那样。在您setUp()添加以下行:

$this->getFrontController()->setParam('bootstrap', $this->application->getBootstrap());
Run Code Online (Sandbox Code Playgroud)