Невозможно передать $ _GET в модульный тест - PullRequest
0 голосов
/ 05 февраля 2019

Я не могу передать $ _GET ['month'] и $ _GET ['day'] в мой модульный тест

$url = "https://api.abalin.net/get/namedays?day=5&month=2";
$response = $this
    ->json('GET', $url);

// пробовал также это

$var = ['month' => '2', 'day' => '5'];
$url = "https://api.abalin.net/get/namedays?day=5&month=2";

$response = $this
    ->json('GET', $url, $var);

После выполненияоба не справятся с этим условием

if (!isset($_GET['month']) || !isset($_GET['day'])){
//
}

1 Ответ

0 голосов
/ 06 февраля 2019

Если вы используете laravel, то $ _GET не идеальный способ тестирования.Кроме того, настройка тестирования в laravel очень полезна, чтобы не делать что-то самостоятельно.

Эта документация содержит примеры того, что вам нужно.

Кроме того, модульное тестирование касается тестированияожидаемый вывод или может быть тестирование процесса передачи данных до вывода в некоторых случаях.

В вашем случае, если ваш тест сам передает параметры url в методе GET, то проверка, если он содержит эти параметры рядом с ним, не очень полезна.Вместо этого вы должны утверждать тесты для ожидаемого ответа.

Вот очень простой пример:

<?php 

$response = $this->json('GET',  '/url',['month' => '2', 'day' => '5']);

// Check if response is successful with status code 200
$response->assertStatus(200);

// Check if response contains an expected data, for example `status` as `success`
$response->assertJson(['status' => 'success'];

Если вы находитесь на laracast, этот даст вамначал.

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