Frage

in der Dokumentation der bereitgestellten Code für Bootstrapping aussieht wie

protected $application;
public function setUp() {
    $this->bootstrap = array($this, 'appBootstrap');
    parent::setUp();
}
public function appBootstrap() {
    $this->application = new Zend_Application( ... );
    $this->application->bootstrap();
}

Ich war neugierig, warum, wenn ich versuchte,

protected $application;
public function setUp() {
    $this->application = new Zend_Application( ... );
    $this->application->bootstrap();
    parent::setUp();
}

es ist fehlgeschlagen. auch wenn ich versuchte, Bootstrapping die Anwendung in bootstrap.php bewegt es nicht zu

// bootstrap.php
...
$application = new Zend_Application( ... );
$application->bootstrap();

der Grund, warum ich dachte, dies zu bootstrap.php bewegt, ist jon lebensold von zend Abgüsse ControllerTestCase erweitert alle diese Bootstrapping in einer separaten Klasse zu behandeln. Ich dachte, anstatt die Klasse zu erweitern, wenn ich den Code in das bootstrap.php in 1 Ort bewegen kann wont es besser sein,

War es hilfreich?

Lösung

Dies ist, was mein ControllerTestCase.php wie folgt aussieht:

<?php
abstract class ControllerTestCase extends Zend_Test_PHPUnit_ControllerTestCase
{
    public function setUp()
    {

        $this->bootstrap = new Zend_Application(
            APPLICATION_ENV,
            APPLICATION_PATH . '/configs/application.ini'
        );
        parent::setUp();
    }
}

TestHelper.php (Bootstrap)

<?php
define('BASE_PATH', realpath(dirname(__FILE__) . '/../public'));
define('APPLICATION_PATH', realpath(BASE_PATH . '/../application'));

set_include_path(implode(PATH_SEPARATOR, array(
    '.',
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path()
)));

define('APPLICATION_ENV', 'testing');

require_once "Zend/Loader/Autoloader.php";

$loader = Zend_Loader_Autoloader::getInstance();
$loader->setFallbackAutoloader(true);
$loader->suppressNotFoundWarnings(false);

require_once 'ControllerTestCase.php';
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top