РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1144 of 1361 menu

Класс MockResponse

Класс MockResponse используется в тестах для имитации ответа от внешнего HTTP-сервиса. Он передаётся в MockHttpClient и позволяет задать тело ответа, статус-код и заголовки. Первым параметром конструктора идёт содержимое тела ответа, вторым - HTTP-статус, третьим - массив заголовков.

Синтаксис

new MockResponse(string $body = '', int $status = 200, array $headers = [])

Пример

Давайте создадим мок-ответ с телом 'abcde' и статусом 200:

<?php namespace AppTestsService; use PHPUnitFrameworkTestCase; use SymfonyComponentHttpClientResponseMockResponse; class ArticleServiceTest extends TestCase { public function testIndex(): void { $response = new MockResponse('abcde', ['status' => 200]); echo $response->getContent(); } } ?>

Результат выполнения кода:

"abcde"

Пример

Давайте зададим статус-код и заголовок ответа:

<?php namespace AppTestsService; use PHPUnitFrameworkTestCase; use SymfonyComponentHttpClientResponseMockResponse; class ArticleServiceTest extends TestCase { public function testStatus(): void { $response = new MockResponse('user', [ 'status' => 404, 'headers' => ['Content-Type' => 'application/json'], ]); echo $response->getStatusCode(); } } ?>

Результат выполнения кода:

404

Пример

Давайте используем MockResponse вместе с MockHttpClient для имитации внешнего запроса:

<?php namespace AppTestsService; use PHPUnitFrameworkTestCase; use SymfonyComponentHttpClientMockHttpClient; use SymfonyComponentHttpClientResponseMockResponse; class ArticleServiceTest extends TestCase { public function testExternalApi(): void { $mockResponse = new MockResponse('hello', ['status' => 200]); $client = new MockHttpClient($mockResponse); $response = $client->request('GET', 'https://example.com/api'); echo $response->getContent(); } } ?>

Результат выполнения кода:

"hello"

Смотрите также

  • класс MockHttpClient,
    который имитирует HTTP-клиент в тестах
  • класс HttpBrowser,
    который эмулирует браузер для функциональных тестов
  • метод request,
    который выполняет HTTP-запрос в тесте
  • метод getResponse,
    который возвращает объект ответа после запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить