Я пытаюсь проверить свои контроллеры.
Я следовал этому руководству:
http://www.zendcasts.com/unit-testing-a ... s / 2010/11 /
Все было хорошо, пока я не хотел использовать этот вызов в моей тестовой функции:
$ This-> отправка ( '/');
Я думаю, проблема в начальной загрузке, но я не знаю, как решить эту проблему.
Я вставляю свои файлы, участвующие в тестировании:
application.ini = http://pastie.org/2248669
phpunit.xml =
<phpunit bootstrap="./application/bootstrap.php" colors="true">
<testsuite name="Application Test Suite">
<directory>./application</directory>
</testsuite>
<testsuite name="Library Test Suite">
<directory>./library</directory>
</testsuite>
<filter>
<!-- If Zend Framework is inside your project's library, uncomment this filter -->
<whitelist>
<directory suffix=".php">../application</directory>
<directory suffix=".php">../library/Kolcms</directory>
<exclude>
<directory suffix=".php">../library/Zend</directory>
<directory suffix=".php">../library/Kolcms/Model/DB</directory>
<directory suffix=".phtml">../library/</directory>
<directory suffix=".phtml">../application/</directory>
<file suffix=".php">../application/Bootstrap.php</file>
</exclude>
</whitelist>
</filter>
<logging>
<log type="coverage-html" target="./log/report" charset="UTF-8"
yui="true" highlight = "true" lowUpperBound="50" highLowerBound="80" />
</logging>
bootstrap.php =
<?php
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../../application'));
// Define application environment
define('APPLICATION_ENV', 'testing');
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
realpath(APPLICATION_PATH . '/../../../Zend'),
get_include_path()
)));
/** Zend_Application */
require_once 'Zend/Application.php';
require_once 'ControllerTestCase.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap();
clearstatcache();
ControllerTestCase.php =
<?php
require_once 'Zend/Test/PHPUnit/ControllerTestCase.php';
class ControllerTestCase
extends Zend_Test_PHPUnit_ControllerTestCase
{
/**
*
* @var Zend_Application
*/
protected $application;
public function setUp()
{
$this->bootstrap = array($this,'appBootstrap');
parent::setUp();
}
public function appBootstrap()
{
$this->application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$this->application->bootstrap();
}
public function tearDown()
{
$this->resetRequest();
$this->resetResponse();
parent::tearDown();
}
}
indexControllerTest.php =
<?php
include_once APPLICATION_PATH . '/modules/core/controllers/IndexController.php';
class Core_IndexControllerTest extends ControllerTestCase
{
public function testDefaultShouldInvokeAction()
{
$this->dispatch('/core/index/index');
$this->assertController('index');
$this->assertAction('index');
$this->assertModule('core');
}
}
А вот мой вывод phpunit:
$ phpunit
PHPUnit 3.5.5 by Sebastian Bergmann.
PHP Fatal error: Call to a member function hasResource() on a non-object in
/home/aykut/dev/kolonicms/application/modules/core/controllers/ErrorController.php on
line 49
Fatal error: Call to a member function hasResource() on a non-object in
/home/aykut/dev/kolonicms/application/modules/core/controllers/ErrorController.php
on line 49
Может кто-нибудь помочь мне, пожалуйста.
Спасибо