有人成功设置了Zend_Test吗?您使用的方法/方法是什么,以及如何运行测试/测试套件?
我已经安装并使用PHPUnit。现在我正在尝试编写一些简单的控制器测试。Zend Framework文档假定已设置自动加载,但我还没有这样做。那么您用来自动加载正确文件的方法是什么?我通常会在普通的引导文件中这样做,但我不想在我的测试中混杂很多包含和设置路径。一个抽象控制器测试用例类是否是最好的选择?
那关于像文档使用的引导插件呢...您是这样启动测试的,还是您喜欢以不同的方式执行?我想尽可能重用常规引导文件中的内容。我应该如何DRY up我的引导文件,以供测试和正常使用?
以下是我的测试:
我已经安装并使用PHPUnit。现在我正在尝试编写一些简单的控制器测试。Zend Framework文档假定已设置自动加载,但我还没有这样做。那么您用来自动加载正确文件的方法是什么?我通常会在普通的引导文件中这样做,但我不想在我的测试中混杂很多包含和设置路径。一个抽象控制器测试用例类是否是最好的选择?
那关于像文档使用的引导插件呢...您是这样启动测试的,还是您喜欢以不同的方式执行?我想尽可能重用常规引导文件中的内容。我应该如何DRY up我的引导文件,以供测试和正常使用?
以下是我的测试:
<?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...
}
我该怎么办?