Bootstrapping Zend_Application mit Zend_Test
-
26-09-2019 - |
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,
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