PHPUnit测试在插件上失败

时间:2011-01-24 14:31:37

标签: zend-framework plugins phpunit bootstrapping

我的phpunit测试因此错误而失败:

C:\workspace\internal_jets3\tests>phpunit --verbose
PHPUnit 3.5.7 by Sebastian Bergmann.


Fatal error: Call to a member function getOptions() on a non-object in C:\worksp
ace\internal_jets3\library\My\Controller\Plugin\ModuleLayoutLoader.php on line 7

从插件中提取:

class My_Controller_Plugin_ModuleLayoutLoader extends Zend_Controller_Plugin_Abstract
{
    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {
        $config = Zend_Controller_Front::getInstance()->getParam('bootstrap')->getOptions();

有关如何在测试中包含插件的任何帮助都会有所帮助。谢谢!

编辑@Gordon 这对我来说并不那么明显。 执行var_dump:

var_dump(Zend_Controller_Front::getInstance()->getParam('bootstrap'));
die();

给了我:

object(Bootstrap)[3]
      protected '_appNamespace' => boolean false
      protected '_resourceLoader' => null
      protected '_application' => 

对我说“对象”;在转储的中途是:

  protected '_options' => 

所以这让我感到困惑 - 我不熟悉如何正确地phpunit测试这个对象。

1 个答案:

答案 0 :(得分:1)

要在Zend环境中设置PHPUnit,你必须在你的phpunit引导程序中激活你的Zend引导程序。在此之后,您的应用程序中仍然有一个引导对象。 你的错误消息说Zend_Controller_Front::getInstance()->getParam('bootstrap') 一片空白。你确定,你已经在正确的位置进行了调试吗?