Quelqu'un at-il réussi à configurer Zend_Test? Quelle était votre méthode/approche et comment exécutez-vous vos tests/suites de tests?Zend Framework: Premiers pas avec Zend_Test
J'ai déjà PHPUnit installé et fonctionne. Maintenant, j'essaie d'écrire quelques tests de contrôleurs simples. La documentation de Zend Framework suppose que le chargement automatique est configuré, ce que je n'ai pas fait. Quelle méthode font vous utiliser pour charger automatiquement les fichiers appropriés? Je le fais dans mon fichier bootstrap normal, mais je ne veux pas encombrer mon test avec un tas d'inclusions et de configuration de chemins. Est-ce qu'une classe de cas de test de contrôleur abstrait serait la voie à suivre?
Qu'en est-il du plugin bootstrap comme la documentation l'utilise ... est-ce ainsi que vous faites vos tests, ou aimez-vous le faire différemment? Je voudrais réutiliser autant de fichier bootstrap que possible. Comment dois-je sécher mon bootstrap pour les tests et l'utilisation normale?
Voici mon test jusqu'à présent:
<?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...
}
Que dois-je faire?