$this->front->
не будет работать, поскольку свойство фронт-контроллера равно $this->frontController->
или $this->getFrontController()->
.
Несмотря на это, ваши тесты, вероятно, не будут работать в любом случае из-за способа загрузки. Вы настраиваете свой фронт-контроллер из файла конфигурации ini? Если да, то вам не нужно настраивать frontController в ваших тестах, вам нужно настроить загрузчик с помощью Zend_Application
.
$this->bootstrap = new Zend_Application(
'testing',
APPLICATION_PATH . '/configs/application.ini'
);
Вам не нужно будет вызывать bootstrap()
на вашем Zend_Application
экземпляре, потому что Zend_Test_PHPUnit_ControllerTestCase
сделает это, когда вы отправите запрос.
Итак, ваш базовый класс может выглядеть так:
class ControllerTestCase extends Zend_Test_PHPUnit_ControllerTestCase
{
public function setUp()
{
// Assign and instantiate in one step:
$this->bootstrap = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
parent::setUp();
}
}
А тест вашего контроллера, расширяющий ваш базовый класс, будет выглядеть так:
class Controller_IndexControllerTest extends ControllerTestCase
{
public function testIsEverythingOK()
{
$this->assertTrue(true);
}
public function testLoginAction()
{
$this->dispatch('/login/index');
$this->assertModule('default');
$this->assertController('login');
$this->assertAction('index');
}
}
Готово.
Ресурсы
Начальная загрузка TestCase