Zend_Testのセットアップに成功した人はいますか?あなたの方法/アプローチは何でしたか、テスト/テストスイートはどのように実行しましたか?Zend Framework:Zend_Testの使い方
私はすでにPHPUnitをインストールして動作させています。今、私は単純なコントローラテストを書こうとしています。 Zend Frameworkのドキュメントでは、オートロードがセットアップされていると仮定していますが、これはまだ行っていません。どのような方法を行うあなたはを使って適切なファイルを自動読み込みしますか?私は通常のブートストラップファイルでそうしますが、たくさんのインクルードとセットアップパスでテストを混乱させたくありません。抽象的なコントローラのテストケースクラスは、行く方法でしょうか?
ドキュメントのようなブートストラップ・プラグインは、テストをどのようにブートストラップするのでしょうか、それとも別の方法でやりたいのですか?できるだけ多くの通常のブートストラップファイルを再利用したいと思います。テストと通常の使用のために私のブートストラップをどのようにDRYしなければなりませんか?
ここでは私のテストでは、これまでのところです:
<?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...
}
私は何をすべきでしょうか?