Zend Framework 1.10.6 と Zend_Test_PHPUnit_ControllerTestCase を使用して、コントローラー クラスのテスト ケースを書き始めています。テスト ケースの実行中に Zend_Controller_Action_HelperBroker が Layout アクション ヘルパーを見つけられないという問題が 1 つあります。
私のテストケースの骨子は次のとおりです。
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: 名前別のアクション ヘルパー レイアウトが見つかりません
クラス Zend_Controller_Action_HelperBroker の 2 行をコメント アウトして、368 行目あたりのソースを見つけようとすると、次のようになります。
Zend_Loader_PluginLoader_Exception: 'Layout' という名前のプラグインがレジストリに見つかりませんでした。使用するパス: Zend_Controller_Action_Helper_: Zend/Controller/Action/Helper/
私のアプリケーションでは、実行時にレイアウト スクリプトの読み込みが正常に機能します。PHPUnit でテストを実行しているときに、Zend_Controller_Action_Helper の正しいパスまたはレジストリが見つからないため、レイアウト プラグインを読み込むことができないようです。
Zend が正しくインストールされ、Layout.php が正しい場所にあることを確認しました。
何か案は?
デル