我想寫一些測試用例,我正在寫一個ZF應用程序,但我似乎無法通過這一點。Zend自動加載模型在PHPUnit
我已經擴展了Zend_Test_PHPUnit_ControllerTestCase
,增加以下內容:
public function setUp() {
$this->bootstrap = new Zend_Application('testing',
APPLICATION_PATH . '/configs/application.ini');
parent::setUp();
}
它的工作原理,以及它初始化了Zend自動加載磁帶機,讓我加載我的圖書館以及Zend類內的其他類。所以我設置了一個測試:
public function testUserUnauthorized() {
$this->dispatch('/api/user');
//Assertions...
}
不幸的是,測試永遠不會通過調度。相反,它給我一個錯誤:
Fatal error: Class 'App_Model_User' not found in ....Action.php
action.php的是擴展Zend_Controller_Action
類。其中有一項功能使用App_Model_User
來驗證登錄的用戶。自從自動裝載機工作以來,我從不必添加require_once
。這是奇怪的部分:它通過我的瀏覽器工作。只是不在PHPUnit中。
所以我甩使用Zend自動加載機註冊的自動加載磁帶機:
public function testUserUnauthorized() {
print_r(Zend_Loader_Autoloader::getInstance()->getAutoloaders());
exit;
$this->dispatch('/api/user');
}
它顯示我的所有模塊,以及其命名空間視圖,控制器,模型等我做了同樣的通過我的瀏覽器垃圾箱匹配。
缺少自動加載磁帶機的配置?一些自定義spl自動加載器?找出哪個自動加載器加載了App_Model_User類。 – MonkeyMonkey