Testing Laravel Blade Components

Category: Laravel, Laravel

We think you might be interested in this job:

Testing Laravel Blade Components | C.S. Rhymes C.S. Rhymes HomeBooksNigel's Intranet AdventureHow NOT to make a WebsiteHow NOT to use a SmartphoneMy WorkThemesProjectsSitesStoriesSponsorsAboutBlogSponsorTesting Laravel Blade ComponentsPublished: Jun 16, 2021 by C.S. RhymesRecently I built a Laravel package containing Blade Components for use with the Bulma frontend framework, called Bulma Blade UI. As part of building the package I wanted to ensure that there were tests to ensure that, firstly, the components rendered without errors, and secondly, that the attributes overrode the settings as expected.Testing a Blade ComponentLaravel allows you to render your component in a test using $this->blade(). It accepts the html/template string you wish to render as the first argument and the parameters as the second argument. You can then create assertions against the response, such as assertSee(), assertDontSee() or assertSeeInOrder().Below is an example for the message component, which tests that the title appears before the content and that the classes message and the default type of is-info./** @test */publicfunctionit_renders_the_message_component(){$view=$this->blade('The message content',['title'=>'The message title']);$view->assertSeeInOrder(['The message title','The message content']);$view->assertSee('message is-info');}If you have a Blade Component with a class you can use $this->component() instead of $this->blade(), passing in the component class instead of the template as the first argument.Orchestra TestbenchWhen I wrote the tests in the Laravel package I followed the Orchestra Testbench instructions and extended the Orchestra\Testbench\TestCase.

As the majority of tests in the package were component tests I decided to use this in the test case so that all of the other tests that extend the TestCase class had access to it too.

Get the latest Laravel/PHP jobs, events and curated articles straight to your inbox, once a week

Fathom Analytics | Fast, simple and privacy-focused website analytics. Fathom Analytics | Fast, simple and privacy-focused website analytics.
Community Partners