Quick Tip: Unit Testing JSON Columns in Laravel


April 21st, 2021


You may know that you can query against JSON columns using the column->key syntax in Laravel, but I recently learned you can use the same syntax in your tests when asserting that the database has certain data!

Query Example

FormElement::where('rules->required', null)->get();

Testing Example

/** @test */
public method a_form_element_can_be_stored
    // Do some stuff...
    $this->assertDatabaseHas('form_elements', [
        'rules->required' => null,

Check out all our posts on testing with Laravel.

Filed in:

Jason Beggs

TALL stack (Tailwind CSS, Alpine.js, Laravel, and Livewire) consultant and owner of roasted.dev.