Почему второй тестовый пример Cakephp's Controller всегда не удался - PullRequest
0 голосов
/ 24 октября 2019

Я реализую тестовый пример контроллера для нашего приложения, которое реализовано в версии 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']);
    }
}

1 Ответ

0 голосов
/ 24 октября 2019

Похоже, вы забыли настроить $_SERVER переменные в phpunit.xml.dist файле:

<php>
  <server name="HTTP_HOST" value="example.org"/>
</php>

Дополнительная информация: https://phpunit.readthedocs.io/en/8.3/configuration.html

...