Code Monkey home page Code Monkey logo

lumen-testing's Introduction

Lumen Testing

php-badge packagist-badge Total Downloads travis-badge

Description

A testing suite for Lumen like Laravel does.

Requirements

  • >= PHP 7.1
  • >= Lumen 5.3

Installation

composer require --dev albertcht/lumen-testing
  • Make your test case extend AlbertCht\Lumen\Testing\TestCase

You're all done! Enjoy your testing like in Laravel!

Concerns

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 use RefreshDatabase, you don't need to use the other two traits anymore.

Response Assertions

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.

Authentication Assertions

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.

Database Assertions

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.

Reference

See full document at Laravel's doc:

Support on Beerpay

Hey dude! Help me out for a couple of ๐Ÿป!

Beerpay Beerpay

lumen-testing's People

Contributors

albertcht avatar darrynten avatar henkpoley avatar optiman avatar realjay007 avatar steveops avatar stevethomas avatar zchlm avatar zimo-xiao avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.