Application Testing
- Introduction
- Interacting With Your Application
- Testing JSON APIs
- Sessions / Authentication
- Disabling Middleware
- Custom HTTP Requests
- PHPUnit Assertions
Introduction
Laravel provides a very fluent API for making HTTP requests to your application, examining the output, and even filling out forms. For example, take a look at the test defined below:
<?php use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\DatabaseTransactions; class ExampleTest extends TestCase { /** * A basic functional test example. * * @return void */ public function testBasicExample() { $this->visit('/') ->see('Laravel 5') ->dontSee('Rails'); } }
The visit
method makes a GET
request into the application. The see
method asserts that we should see the given text in the response returned by the application. The dontSee
method asserts that the given text is not returned in the application response. This is the most basic application test available in Laravel.
You may also use the 'visitRoute' method to make a 'GET' request via a named route:
$this->visitRoute('profile'); $this->visitRoute('profile', ['user' => 1]);
Interacting With Your Application
Of course, you can do much more than simply assert that text appears in a given response. Let's take a look at some examples of clicking links and filling out forms:
Please login to continue.