我正在为使用cakephp 2.x版本实现的应用程序实现控制器测试用例。
到目前为止,我有2个测试用例,并计划做更多。但是,我在第二个测试用例中堆叠在一起,并收到失败消息。如果我注释掉第一个测试用例并在第二个测试用例中运行它,则可以得到预期的结果。唯一的是如果我有两个测试用例,第二个测试用例总是失败。这是我的代码段。
我的运行命令是./cake test --stderr app Controller/EventsController
,收到错误消息是Undefined index: HTTP_HOST
我知道有些奇怪的情况,它注释掉了第一个测试用例,但从未收到此错误并成功通过了第二个测试用例。感谢您的建议和想法。非常感谢。
App::uses('EventsController', 'Controller');
App::uses('UsersController', 'Controller');
class EventsControllerTest extends ControllerTestCase {
public function setUp(){
$this->testAction('/users/login/',[
'method' => 'POST',
'data' => [
'User' => [
'username'=> 'bk.ll@llmail.com',
'password'=> '123456',
'clientType'=>'llWeb'
]
]
]);
parent::setUp();
}
public function testEvents(){
$this->testAction('/admin/events/');
$this->assertInternalType('array', $this->vars['organisations']);
$this->assertInternalType('string', $this->vars['userRole']);
$this->assertInternalType('array', $this->vars['dutyRosterObj']);
$this->assertInternalType('string', $this->vars['date']);
$this->assertInternalType('boolean', $this->vars['isKkCdlc']);
}
public function testEventsList(){
$this->testAction('/admin/events/list/');
$this->assertInternalType('array', $this->vars['events']);
$this->assertInternalType('array', $this->vars['organisations']);
$this->assertInternalType('boolean', $this->vars['demoForSchool']);
$this->assertInternalType('integer', $this->vars['offset']);
}
}
答案 0 :(得分:0)
您似乎忘记了在$_SERVER
文件中配置phpunit.xml.dist
变量:
<php>
<server name="HTTP_HOST" value="example.org"/>
</php>
更多信息:https://phpunit.readthedocs.io/en/8.3/configuration.html