Вот что я сделал, чтобы заставить его работать:
Во-первых, нам нужно решить проблему с автозагрузкой. Мы сделаем это, создав файл, который будут включены во все тесты, и поместим его в каталог tests. Примечание: я в значительной степени скопировал все это из моего /public/index.php.
# /tests/loader.php
<?php
define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application/'));
set_include_path( APPLICATION_PATH . '/../library' . PATH_SEPARATOR .
APPLICATION_PATH . '/models' . PATH_SEPARATOR .
APPLICATION_PATH . '/forms' . PATH_SEPARATOR .
get_include_path() );
require_once "Zend/Loader.php";
Zend_Loader::registerAutoload();
Во-вторых, нам нужно включить этот файл в наш тест. Наш тестовый файл находится в / tests / application / controllers /. Я не собираюсь использовать мой загрузчик как плагин, так как мой файл начальной загрузки работает так же, как учебник QuickStart . Я просто сошлюсь на него, установив местоположение как публичный загрузчик $. Когда Zend_Test_PHPUnit_ControllerTestCase
создаст, он будет искать файл начальной загрузки, который мы здесь установили.
<?php
require_once '../../loader.php';
class IndexControllerTest extends Zend_Test_PHPUnit_ControllerTestCase
{
public $bootstrap = '../../../application/bootstrap.php';
public function testIndexAction()
{
$this->dispatch('/index');
$this->assertController('index');
$this->assertAction('index');
}
}
И это все! Если мой файл начальной загрузки уже был плагином, это может быть немного сложнее, но, поскольку это не так, это очень просто.