Пакет для тестових асерцій у Laravel

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

Ви вже знайомі з пакетом "Test Assertions" для Laravel? Досліджуйте потужні засоби тестування, які допоможуть вам створити надійні додатки за допомогою простих асерцій і методів перевірки. Читайте далі, щоб дізнатися, як ефективно використовувати цей пакет у своїх проектах

Пакет Test Assertions для Laravel, створений Джейсоном Маккрері Jason McCreary, містить корисні твердження для тестування додатків на Laravel. Цей пакет надає трейти з корисними твердженнями, методами-сопоставниками Laravel та загальними допоміжними функціями для тестів:
use JMac\Testing\Traits\AdditionalAssertions;
 
// Твердження трейту
$this->assertActionUsesFormRequest(string $controller, string $method, string $form_request);
$this->assertActionUsesMiddleware(string $controller, string $method, string|array $middleware);
$this->assertRouteUsesFormRequest(string $routeName, string $formRequest);
$this->assertRouteUsesMiddleware(string $routeName, array $middlewares, bool $exact);
$this->assertValidationRules(array $expected, array $actual);
$this->assertExactValidationRules(array $expected, array $actual);
$this->assertValidationRuleContains($rule, string $class);
$this->assertViewHasNull($key);
$this->createFormRequest(string $class, array $data = []);
Автор поділився прикладом використання допоміжної функції freezeNow() у тесті для "заморозки" часу та проведення перевірок.
// Час
$package = Package::factory()->create();
$slug = $this->faker()->slug(2);
 
$this->freezeNow();
 
// Зміни...
$package->slug = $slug;
$package->save();
 
// Перевірка тепер
$package->refresh();
$this->assertNow($package->updated_at);
На завершення, ось кілька матчів, які можна використати для визначення, чи є змінна екземпляром Model, Collection або Eloquent Collection:
use JMac\Testing\LaravelMatchers;
 
// Матчери
LaravelMatchers::isModel(Model $model = null);
LaravelMatchers::isCollection(Collection $collection = null);
LaravelMatchers::isEloquentCollection(Collection $collection = null);
Більше інформації про цей пакет, інструкції з установки та код джерела можна знайти на GitHub.

Популярні

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

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

Використання штучного інтелекту для управління перекладами в Laravel

Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!

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

Управління доступом у Filament за допомогою плагіна Shield

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

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

Локальні моделі та їх скоупи в Laravel за допомогою атрибута Scope

В Laravel 12 ми отримали можливість використовувати новий підхід для визначення локальних скоупів у моделях Eloquent. Дізнайтеся, як новий атрибут #[Scope] спрощує цей процес і зберігає ваші назви методів незмінними