Я пытаюсь использовать Zend_Test_PHPUnit_ControllerTestCase в моем тестировании и испытываю трудности.
Загрузчик моего приложения создает экземпляр библиотечного класса, который управляет доступом к пространству Zend_Session_Namespace с именем «LiveData».LiveData поддерживает массивы данных для текущего пользователя, текущей организации и т. Д. После создания экземпляра объект LiveData сохраняется в реестре.
Когда я создаю экземпляр LiveData, я устанавливаю singleInstance = true, т.е.new Zend_Session_Namespace('LiveData', true)
Это поможет избежать путаницы в отношении того, кто что делает с LiveData.
В любом случае, это работает нормально.Я просматриваю сайт, вход в систему, выход из системы и т. Д., И мои данные сеанса ведут себя так, как я ожидал.
Однако при попытке выполнить тестирование я получаю сообщение «Объект пространства имен сеанса уже существует для этого пространства имен».
Мои тесты загружаются в каждый тестовый файл следующим образом:
public function setUp()
{
$this->bootstrap = new Zend_Application(APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini');
parent::setUp();
}
Это были стандартные леса, размещаемые там Netbeans.Читая документацию Zend_Test, мне кажется, что это нормально.
Проблема возникает, когда я отправляю контроллер в тесте следующим образом:
public function testIndexIsDefaultAction()
{
$this->dispatch('/');
// assertions
$this->assertController('Index');
$this->assertAction('index');
}
Я думаю, что тест установлен) метод приводит к тому, что мое приложение запускается (и создает копию LiveData).Затем $this->dispatch('/')
снова запускает бутсрап ... Хотя я не могу представить, почему это так.(Почему мы хотим, чтобы он запускался дважды?) Если вы сможете пролить свет на мою судьбу, я был бы очень признателен!