Hat jemand Erfolg beim Einrichten von Zend_Test gehabt? Was war Ihre Methode/Vorgehensweise und wie führen Sie Ihre Tests/Testsuiten durch?Zend Framework: Erste Schritte mit Zend_Test
Ich habe bereits PHPUnit installiert und funktioniert. Jetzt versuche ich ein paar einfache Controller-Tests zu schreiben. Die Zend Framework-Dokumentation geht davon aus, dass Autoloading eingerichtet ist, was ich nicht getan habe. Welche Methode verwenden Sie verwenden, um die entsprechenden Dateien automatisch zu laden? Ich mache das in meiner normalen Bootstrap-Datei, aber ich möchte meinen Test nicht mit einer Reihe von Includes und Verbindungswegen überladen. Wäre eine abstrakte Controller-Testfallklasse der richtige Weg?
Was ist mit dem Bootstrap-Plugin wie die Dokumentation verwendet ... ist das, wie Sie Ihre Tests booten, oder möchten Sie es anders machen? Ich möchte so viel wie möglich von der normalen Bootstrap-Datei verwenden. Wie sollte ich meinen Bootstrap zum Testen und normalen Gebrauch DRY?
Hier ist mein Test so weit:
<?php
class IndexControllerTest extends Zend_Test_PHPUnit_ControllerTestCase
{
public function setUp()
{
$this->bootstrap = array($this, 'appBootstrap');
parent::setUp();
}
public function appBootstrap()
{
$this->frontController->registerPlugin(new Bootstrapper('testing'));
}
public function testIndexAction()
{
$this->dispatch('/index');
$this->assertController('index');
$this->assertAction('index');
}
}
//straight from the documentation
class Bootstrapper extends Zend_Controller_Plugin_Abstract
{
/**
* @var Zend_Config
*/
protected static $_config;
/**
* @var string Current environment
*/
protected $_env;
/**
* @var Zend_Controller_Front
*/
protected $_front;
/**
* @var string Path to application root
*/
protected $_root;
/**
* Constructor
*
* Initialize environment, root path, and configuration.
*
* @param string $env
* @param string|null $root
* @return void
*/
public function __construct($env, $root = null)
{
$this->_setEnv($env);
if (null === $root) {
$root = realpath(dirname(__FILE__) . '/../../../');
}
$this->_root = $root;
$this->initPhpConfig();
$this->_front = Zend_Controller_Front::getInstance();
}
/**
* Route startup
*
* @return void
*/
public function routeStartup(Zend_Controller_Request_Abstract $request)
{
$this->initDb();
$this->initHelpers();
$this->initView();
$this->initPlugins();
$this->initRoutes();
$this->initControllers();
}
// definition of methods would follow...
}
Was soll ich tun?