Oh Dear is the all-in-one monitoring tool for your entire website. We monitor uptime, SSL certificates, broken links, scheduled tasks and more. You'll get a notifications for us when something's wrong. All that paired with a developer friendly API and kick-ass documentation. O, and you'll also be able to create a public status page under a minute. Start monitoring using our free trial now.

Asserting valid and invalid requests in Laravel

Original – by Brent Roose – 1 minute read

Testing a Laravel project is one of the most pleasant experiences I've ever had: there's a clean testing API, a very powerful layer added on top of testing frameworks; all while keeping the simplicity and eloquence you'd expect from a Laravel project.

Here's a great example of Laravel's powerful simplicity. Recently, an improved way to test whether a request has validation errors or not was added. You can now use assertValid and assertInvalid instead of assertSessionHasErrors or assertJsonValidationErrors:

public function test_post_validation()
{
    $this
        ->post(
            action(UpdatePostController::class),
            [
                'title' => null,
                'date' => '2021-01-01',
                'author' => 'Brent',
                'body' => null,
            ],
        )
        ->assertValid(['date', 'author'])
        ->assertInvalid(['title', 'body']);
}

It's even possible to check for specific validation errors:

public function test_post_validation()
{
    $this
        ->post(/* … */)
        ->assertInvalid([
            'title' => 'required',
            'body' => 'required',
        ]);
}

It's these kinds of little details that make testing a Laravel project so much fun!

If you want to up your testing game, check out our complete course about Testing Laravel. It teaches you how to test a Laravel application, from a beginner to master level.

Stay up to date with all things Laravel, PHP, and JavaScript.

Follow me on Twitter. I regularly tweet out programming tips, and what I myself have learned in ongoing projects.

Every month I send out a newsletter containing lots of interesting stuff for the modern PHP developer.

Expect quick tips & tricks, interesting tutorials, opinions and packages. Because I work with Laravel every day there is an emphasis on that framework.

Rest assured that I will only use your email address to send you the newsletter and will not use it for any other purposes.

Comments

What are your thoughts on "Asserting valid and invalid requests in Laravel"?

Comments powered by Laravel Comments
Want to join the conversation? Log in or create an account to post a comment.