Ошибка при запуске юнит-теста - PullRequest
0 голосов
/ 23 января 2011

У меня есть эта часть кода в моем indexController:

public function init()
{
  $this->_translate = $this->getInvokeArg('bootstrap')->getResource('translate');
}

Это прекрасно работает, и в PRD я не получаю никаких ошибок

Но когда я запускаю свои модульные тестыон генерирует следующую ошибку:

Неустранимая ошибка: вызов функции-члена getResource () для необъекта в K: \ stage 5 \ application \ controllers \ IndexController.php в строке 9

Это мой тестовый код:

class IndexControllerTest extends ControllerTestCase
{
    public function testCanDisplayOurHomepage()
    {
        //Go to the main page of the webapplication
        $this->dispatch('/');

        //check if we don't end up in an error controller
        $this->assertNotController('error');
        $this->assertNotAction('error');

        //Ok no error lets check if we are on the home page
        $this->assertModule('default');
        $this->assertController('index');
        $this->assertAction('index');
        $this->assertResponseCode(200);


    }
}

Ответы [ 3 ]

3 голосов
/ 20 ноября 2012

Это не работало в моих модульных тестах, потому что я только вызывал загрузчик приложения, а не вызывал run.

/** Zend_Application */
require_once 'Zend/Application.php';

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap();

Чтобы исправить проблему, я добавил это в boostrap phpunit

$appBootstrap = $application->getBootstrap();
$front   = $appBootstrap->getResource('FrontController');
$front->setParam('bootstrap', $appBootstrap);

и теперь $bootstrap = $this->getInvokeArg('bootstrap'); отлично работает в PHPUnit.

1 голос
/ 24 января 2011

Вы пытались вызвать загрузчик для перевода в своем вызове?

$this->bootstrap("translate")
0 голосов
/ 04 июня 2011

Отметьте ответ .

Похоже, Zend_Controller_Action->getInvokeArg('bootstrap') не работает в среде модульного тестирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...