Downloads
Stars
Version
A testing suite for Lumen like Laravel does.
composer require --dev albertcht/lumen-testing
AlbertCht\Lumen\Testing\TestCase
You're all done! Enjoy your testing like in Laravel!
There are some traits you can use in your test case (including original ones in Lumen):
AlbertCht\Lumen\Testing\Concerns\RefreshDatabase
AlbertCht\Lumen\Testing\Concerns\WithFaker
AlbertCht\Lumen\Testing\Concerns\InteractsWithRedis
AlbertCht\Lumen\Testing\Concerns\InteractsWithConsole
AlbertCht\Lumen\Testing\Concerns\InteractsWithContainer
Laravel\Lumen\Testing\DatabaseMigrations
Laravel\Lumen\Testing\DatabaseTransactions
Laravel\Lumen\Testing\WithoutMiddleware
Laravel\Lumen\Testing\WithoutEvents
RefreshDatabase
=DatabaseMigrations
+DatabaseTransactions
, so if you useRefreshDatabase
, you don't need to use the other two traits anymore.
Laravel provides a variety of custom assertion methods for your PHPUnit tests. These assertions may be accessed on the response that is returned from the json
, get
, post
, put
, and delete
test methods:
Method | Description |
---|---|
$response->assertSuccessful(); |
Assert that the response has a successful status code. |
$response->assertStatus($code); |
Assert that the response has a given code. |
$response->assertRedirect($uri); |
Assert that the response is a redirect to a given URI. |
$response->assertHeader($headerName, $value = null); |
Assert that the given header is not present on the response. |
$response->assertHeaderMissing($headerName); |
Assert that the given header is present on the response. |
$response->assertCookie($cookieName, $value = null); |
Assert that the response contains the given cookie. |
$response->assertPlainCookie($cookieName, $value = null); |
Assert that the response contains the given cookie (unencrypted). |
$response->assertCookieExpired($cookieName); |
Assert that the response contains the given cookie and it is expired. |
$response->assertCookieNotExpired($cookieName); |
Assert that the response contains the given cookie and it is not expired. |
$response->assertCookieMissing($cookieName); |
Assert that the response does not contains the given cookie. |
$response->assertJson(array $data); |
Assert that the response contains the given JSON data. |
$response->assertJsonCount(int $count, $key = null); |
Assert that the response JSON has the expected count of items at the given key. |
$response->assertJsonFragment(array $data); |
Assert that the response contains the given JSON fragment. |
$response->assertJsonMissing(array $data); |
Assert that the response does not contain the given JSON fragment. |
$response->assertJsonMissingExact(array $data); |
Assert that the response does not contain the exact JSON fragment. |
$response->assertExactJson(array $data); |
Assert that the response contains an exact match of the given JSON data. |
$response->assertJsonStructure(array $structure); |
Assert that the response has a given JSON structure. |
$response->assertJsonValidationErrors($keys); |
Assert that the response has the given JSON validation errors for the given keys. |
$response->assertViewIs($value); |
Assert that the given view was returned by the route. |
$response->assertViewHas($key, $value = null); |
Assert that the response view was given a piece of data. |
$response->assertViewHasAll(array $data); |
Assert that the response view has a given list of data. |
$response->assertViewMissing($key); |
Assert that the response view is missing a piece of bound data. |
$response->assertSee($value); |
Assert that the given string is contained within the response. |
$response->assertDontSee($value); |
Assert that the given string is not contained within the response. |
$response->assertSeeText($value); |
Assert that the given string is contained within the response text. |
$response->assertDontSeeText($value); |
Assert that the given string is not contained within the response text. |
$response->assertSeeInOrder(array $values); |
Assert that the given strings are contained in order within the response. |
$response->assertSeeTextInOrder(array $values); |
Assert that the given strings are contained in order within the response text. |
Laravel also provides a variety of authentication related assertions for your PHPUnit tests:
Method | Description |
---|---|
$this->assertAuthenticated($guard = null); |
Assert that the user is authenticated. |
$this->assertGuest($guard = null); |
Assert that the user is not authenticated. |
$this->assertAuthenticatedAs($user, $guard = null); |
Assert that the given user is authenticated. |
$this->assertCredentials(array $credentials, $guard = null); |
Assert that the given credentials are valid. |
$this->assertInvalidCredentials(array $credentials, $guard = null); |
Assert that the given credentials are invalid. |
Laravel provides several database assertions for your PHPUnit tests:
Method | Description |
---|---|
$this->assertDatabaseHas($table, array $data); |
Assert that a table in the database contains the given data. |
$this->assertDatabaseMissing($table, array $data); |
Assert that a table in the database does not contain the given data. |
$this->assertSoftDeleted($table, array $data); |
Assert that the given record has been soft deleted. |
See full document at Laravel's doc:
Hey dude! Help me out for a couple of :beers:!