我开始使用 Zend Framework 1.10.6 和 Zend_Test_PHPUnit_ControllerTestCase 为控制器类编写一些测试用例。我遇到了一项问题,即在运行测试用例时,Zend_Controller_Action_HelperBroker 找不到 Layout 操作帮助程序。
以下是我的测试用例的基本内容:
require_once 'PHPUnit/Framework.php';
require_once 'Zend/Test/PHPUnit/ControllerTestCase.php';
require_once 'controllers/IndexController.php';
class Application_Controllers_IndexControllerTest extends Zend_Test_PHPUnit_ControllerTestCase {
public $_application;
protected function setUp() {
$this->bootstrap = array($this, 'appBootstrap');
parent::setUp ();
}
public function appBootstrap() {
// Create application, bootstrap, but don't run
$this->_application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$this->_application->bootstrap();
$this->getFrontController()->setParams($this->_application->getOptions())
->addControllerDirectory(APPLICATION_PATH . '/controllers');
}
public function testIndexAction() {
$this->dispatch('/index/index');
$this->assertController('index');
$this->assertAction('index');
}
}
运行测试用例时出现异常:
Zend_Controller_Action_Exception: Action Helper by name 未找到布局
当我注释掉 Zend_Controller_Action_HelperBroker 类中的两行以尝试在第 368 行附近找到它的来源时,我得到:
Zend_Loader_PluginLoader_Exception:在注册表中找不到名为“布局”的插件;使用的路径: Zend_Controller_Action_Helper_: Zend/Controller/Action/Helper/
运行时在我的应用程序中加载布局脚本工作正常,在 PHPUnit 下运行测试时似乎找不到 Zend_Controller_Action_Helper 的正确路径或注册表,因此无法加载布局插件。
我已经验证 Zend 安装正确并且 Layout.php 位于正确的位置。
有任何想法吗?
德尔