Laravel Packages

Laravel Test Assertions Package

Published
Laravel Test Assertions Package image

The Laravel Test Assertions package by Shift creator Jason McCreary is a set of helpful assertions for testing Laravel applications. The package provides a trait with useful assertions, Laravel matcher methods, and general test helpers:

use JMac\Testing\Traits\AdditionalAssertions;

// Trait assertions
$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 = []);

The author shared an example of using the freezeNow() helper in a test to freeze time and make assertions.

// Time
$package = Package::factory()->create();
$slug = $this->faker()->slug(2);

$this->freezeNow();

// Make changes...
$package->slug = $slug;
$package->save();

// Assert now
$package->refresh();
$this->assertNow($package->updated_at);

Finally, some matches you can use to determine if a variable is a Model, Collection, or Eloquent Collection instance:

use JMac\Testing\LaravelMatchers;

// Matchers
LaravelMatchers::isModel(Model $model = null);
LaravelMatchers::isCollection(Collection $collection = null);
LaravelMatchers::isEloquentCollection(Collection $collection = null);

You can learn more about this package, get full installation instructions, and view the source code on GitHub.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
Search Polymorphic Relations and Filament Tables With Laravel Searchable image

Search Polymorphic Relations and Filament Tables With Laravel Searchable

Read article
Laravel Rest Api 3.0: Typed Fields, Metrics, and OpenAPI Docs image

Laravel Rest Api 3.0: Typed Fields, Metrics, and OpenAPI Docs

Read article
Real-Time Inertia Props With Laravel Reverb image

Real-Time Inertia Props With Laravel Reverb

Read article
PhpStorm 2026.3 Adds an Agent Workspace and PHP 8.6 Support image

PhpStorm 2026.3 Adds an Agent Workspace and PHP 8.6 Support

Read article
Insert Middleware Before or After Existing Laravel Middleware image

Insert Middleware Before or After Existing Laravel Middleware

Read article
Laravel Herd 2: Coding Agents, Workspaces, and Cloud Deploys image

Laravel Herd 2: Coding Agents, Workspaces, and Cloud Deploys

Read article