Нужно установить значения данных в $ this-> request-> data объект для тестирования - PullRequest
0 голосов
/ 29 января 2019

Я использую CakePHP 2.X и мне нужно использовать $this->request->data->object (or a Mock) для проверки метода контроллера.У меня есть условие в контроллере, которое проверяет, если $this->request->data is empty (if (empty($this->request->data)) {EXECUTE SOMETHING}), и мне нужно добавить данные в этот объект на стороне тестирования, чтобы не вводить в оператор if.

Я уже искал в Интернетеи не нашел ничего подходящего мне.Вот код контроллера:

function default($user = null) {
$subsite = $this->Session->read('subsite');
        if ($subsite == "www" || $subsite == "xxx") {
            $this->redirect("/application/addtool");
            return "ok1";
        }
        if (empty($this->request->data)) {
            $this->render();
        } else {
            $this->request->data['Project']['actif'] = true;
            $user_id = $this->Session->read('user_id');
            $this->request->data['Project']['user_id'] = $user_id;
        }
}

1 Ответ

0 голосов
/ 30 января 2019

Чтобы передать данные в тест, вы вводите второй аргумент testAction с массивом данных в ключе data:

$this->testAction('/default', [
    'data' => [
        'some' => 'data',
    ],
    'method' => 'post',
]);

Это создаст тестовый запрос с ['some' => 'data']в данных запроса.

Для получения дополнительной информации: https://book.cakephp.org/2.0/en/development/testing.html#testing-controllers

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...