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