我正在为zend项目编写单元测试, 我想知道
<?php
class IndexControllerTest extends ControllerTestCase
{
public function testHomePage() {
$this->dispatch('/');
}
}
ControllerTestcase.php扩展了Zend / Test / PHPUnit / ControllerTestCase.php
<?php
require_once 'Zend/Application.php';
require_once 'Zend/Test/PHPUnit/ControllerTestCase.php';
class ControllerTestCase
extends Zend_Test_PHPUnit_ControllerTestCase
{
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();
}
}
$ this-&gt; dispatch('/');手段?这是否意味着要求申请的根目录?
答案 0 :(得分:3)
从评论到这种方法:
* Dispatch the MVC
*
* If a URL is provided, sets it as the request URI in the request object.
* Then sets test case request and response objects in front controller,
* disables throwing exceptions, and disables returning the response.
* Finally, dispatches the front controller.
答案 1 :(得分:1)
在面向对象编程中,当一个类扩展另一个类时,它继承了其父类(它正在扩展的类)的方法(或函数)。
您可以使用$this->method
从内部或其后代(其他扩展它的类)调用类方法。
鉴于dispatch
中未定义IndexControllerTest
,它必须是ControllerTestCase
(IndexControllerTest
扩展)的函数,并且它正在传递字符串{{1}对它来说。
查看课程'/'
,会有一个名为ControllerTestCase
的函数,你可以看到它在那里做了什么。