Ответ Mock Curl для тестирования в Laravel - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь выполнить модульное тестирование функции (updateMeeting) в laravel, которая использует внутри него запрос curl.Я пробовал много ссылок Google, но ничего не получалось.Можете ли вы, ребята, дать мне предложения по этому вопросу.

следующие соответствующие методы.$ this-> meeting - MeetingModel

public function updateMeeting($meetingId){
$meeting = $this->meeting->find($meetingId);
 $endpoint = \Config::get('api_backend_endpoint');

$response = $this->curlPut($endpoint);

if ($response->http_status_code != 200) {

            if(Input::get('source') == 'ajax') {
                $apiResponse = app(ApiResponse::class);
                $message = 'ERROR Updating Meeting ' . $meeting->name;

                return $apiResponse->failed($message);
            }

            return Redirect::route('meetings.show', $meetingId)
                ->withInput()
                ->with('message', 'An error occurred hiding meeting with message: ' . $response->errors);
        }

        $meeting->save();

}

следующий метод curlPut

private function curlPut($url, $payload = array())
    {

        $data_string = json_encode($payload);

        $ch = curl_init();
        //send through our payload as post fields
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
        curl_setopt($ch, CURLOPT_USERPWD, $this->username . ":" . $this->password);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                'Content-Type: application/json',
                'Content-Length: ' . strlen($data_string))
        );

        $buffer = json_decode(curl_exec($ch));

        curl_close($ch);

        return $buffer;
    }

1 Ответ

0 голосов
/ 03 декабря 2018

Используйте веб-сервис, такой как https://www.mocky.io/. Вместо того, чтобы запрашивать реальный API, вы отправляете свои запросы их API.Вы можете создавать фиктивные конечные точки, которые возвращают ответ, который вы можете определить.

...