Оглавление
Мок-данные
Мок-данные или мокинг данных - это фиктивные или смоделированные данные имитирующие реальные данные, с которыми бы работал ваш сервис. Эти данные используются для изолированного тестирования модуля, внутри вашего приложения.Класс Illuminate\Support\Facades\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 test_service_communication()
{
Http::fake([
// String responses
'api.notifications.com/*' => 'Message sent',
// Array responses (automatically converted to JSON)
'api.products.com/*' => [
'products' => [
['id' => 1, 'name' => 'Laptop'],
['id' => 2, 'name' => 'Phone']
]
],
// Status code responses
'api.status.com/check' => 200,
'api.deprecated.com/*' => 410,
// Mixed response types for related endpoints
'api.orders.com/active' => ['status' => 'processing'],
'api.orders.com/error' => 400,
'api.orders.com/message' => 'System unavailable'
]);
// Test assertions
$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-мокинга.