Laravel Packages

Pest Route Testing Plugin for Laravel Applications

Published
Pest Route Testing Plugin for Laravel Applications image

The pest-plugin-route-testing for Pest helps you ensure your routes are okay in Laravel. This package has useful methods to filter down which routes to run, bind users to test routes, and more. The simplest example is testing all GET routes, which you can do with one method call:

use function Spatie\RouteTesting\routeTesting;
 
routeTesting('all GET routes')
->assertSuccessful();

All your application routes have high-level validation that returns a 200 status code. That's pretty neat!

Route Testing Plugin Features

  • Test specific routes with the include() method
  • Exclude routes from your test with the exclude() method
  • Route Model Binding support
  • Run custom code before route testing
  • Ignore skipped tests in the test result output

Here are a few more examples from the project's readme, illustrating how to use this plugin:

use function Spatie\RouteTesting\routeTesting;
 
// Filter routes to include
routeTesting('all blog routes')
->include('blog*', 'post*')
->assertSuccessful();
 
// Exclude some routes
routeTesting('all blog routes')
->exclude('admin*')
->assertSuccessful();
 
// Bind a user to test all routes
use App\Models\User;
 
routeTesting('all blog routes')
->bind('user', User::factory()->create())
->assertSuccessful();
 
// Run some code before
routeTesting('all admin routes')
->setUp(function ()
{
$user = User::factory()->create();
 
$this->actingAs($user);
 
// optionally, you could also bind the model
$this->bind('user', $user);
})
->include('admin*')
->assertSuccessful();

You can get started with this package on GitHub at spatie/pest-plugin-route-testing. To install it in your project, add it as a Composer dependency:

composer require spatie/pest-plugin-route-testing
Paul Redmond photo

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

Sponsored

acquaintsoft logo
Acquaint Softtech

Hire Laravel developers with AI expertise at $20/hr. Get started in 48 hours.

Visit Acquaint Softtech

The latest

View all →
PayZephyr: One Payment API for Stripe, Paystack, and PayPal image

PayZephyr: One Payment API for Stripe, Paystack, and PayPal

Read article
Bifrost Turns One With AI Builds and New Workflows image

Bifrost Turns One With AI Builds and New Workflows

Read article
Preview Blade Templates in macOS Finder with Quick Blade image

Preview Blade Templates in macOS Finder with Quick Blade

Read article
Artisan Debugging Commands in Laravel Telescope 5.24.0 image

Artisan Debugging Commands in Laravel Telescope 5.24.0

Read article
Queue totalSize() and JobInterrupted Event in Laravel 13.31 image

Queue totalSize() and JobInterrupted Event in Laravel 13.31

Read article
Find Unexpected Test Inputs with Fuzz for Pest image

Find Unexpected Test Inputs with Fuzz for Pest

Read article