Спрощене мокування HTTP-відповідей у тестах Laravel

Перекладено ШІ 1 Laravel News 02 червня, 2026

Досліджуйте, як Laravel спрощує тестування HTTP-взаємодій за допомогою елегантного синтаксису для фейкових відповідей. Чи готові ви підвищити свою продуктивність у тестуванні, зосередившись на бізнес-логіці? Читайте далі!

Laravel спростив тестування HTTP-взаємодій завдяки елегантному скороченому синтаксису для фейків HTTP-відповідей. Цей підхід суттєво зменшує обсяг коду, роблячи ваші тестові моки більш інтуїтивними.

Основна реалізація пропонує кілька скорочень для типів відповідей:

use Illuminate\Support\Facades\Http;

Http::fake([
    'google.com' => 'Hello World',
    'github.com' => ['foo' => 'bar'],
    'forge.laravel.com' => 204,
]);

Цей синтаксис чудово працює в комплексних тестових сценаріях:

class ApiIntegrationTest extends TestCase
{
    public function testServiceCommunication()
    {
        Http::fake([
            // Відповіді у вигляді рядків
            'api.notifications.com/*' => 'Message sent',
            
            // Відповіді у вигляді масивів (перетворюються на JSON)
            'api.products.com/*' => [
                'products' => [
                    ['id' => 1, 'name' => 'Laptop'],
                    ['id' => 2, 'name' => 'Phone']
                ]
            ],

            // Відповіді зі статус-кодами
            'api.status.com/check' => 200,
            'api.deprecated.com/*' => 410,

            // Різні типи відповідей для пов'язаних кінцевих точок
            'api.orders.com/active' => ['status' => 'processing'],
            'api.orders.com/error' => 400,
            'api.orders.com/message' => 'System unavailable'
        ]);

        // Тестування з перевірками
        $response = Http::get('api.notifications.com/send');
        $this->assertEquals('Message sent', $response->body());

        $products = Http::get('api.products.com/list');
        $this->assertCount(2, $products['products']);

        $status = Http::get('api.status.com/check');
        $this->assertTrue($status->successful());
    }
}

Цей короткий синтаксис значно покращує підтримуваність тестів, зменшуючи когнітивне навантаження під час читання, що дозволяє зосередитися на бізнес-логіці, а не на деталях HTTP-мокування.

Популярні

Інше, що варто прочитати

14 Оновлено 01 червня, 2026

Як задокументувати кілька API в Laravel за допомогою Scramble

Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше

17 Оновлено 01 червня, 2026

Обробка геопросторових даних за допомогою Laravel Magellan

Ви готові відкрити нові горизонти у роботі з геопросторовими даними в Laravel? Дізнайтеся, як за допомогою PostGIS та пакету Laravel-Magellan можна легко зберігати, запитувати та маніпулювати інформацією про розташування, перетворюючи ваші проекти на вражаючі рішення у сфері картографії та геолокації!

12 Оновлено 01 червня, 2026

Удосконалюйте свої проєкти Laravel за допомогою справжнього штучного інтелекту для кодування з Laravel Boost!

Готові підняти свій робочий процес у Laravel на новий рівень? У цій статті я розгляну Laravel Boost, інноваційний AI-допомічник для програмування, який зробить вашу розробку швидшою та продуктивнішою