Skip to content

Laravel http tests generator. No more writing tests by hand

License

Notifications You must be signed in to change notification settings

eduardoarandah/autohttptests

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel autohttptests

Latest Version on Packagist Software License Total Downloads

No more writing tests by hand =D

Just execute the command to record your actions as http tests

php artisan autohttptest:create

imagen

The command will intercept your requests and translate the response as a test.

When finished, your test will be saved in tests/Feature/

Demo in video

autohttptests-gif

What does it test?

  • Request acting as same user
  • Make request using the same verb (GET,PUT,POST) with same arguments
  • Assert http response code
  • Assert errors
  • Assert redirection

Example code

<?php

namespace Tests\Feature;
use Tests\TestCase;

class SomethingTest extends TestCase
{
    public function testAutoHttpTest()
    {
        $this
        ->actingAs(\App\Models\User::find(1))
        ->post('home/something', [
            'name'         => 'a',
            'lastname'     => 'a',
            'city'         => '',
            'hobbies'   => '',
            'twitter_username' => 'a',
        ])
        ->assertStatus(302)
        ->assertSessionHasErrors([
            'name',
            'country_id',
            'twitter_username',
        ]);

        $this
        ->actingAs(\App\Models\User::find(1))
        ->post('home/something', [
            'name'              => 'asdfa',
            'lastname'          => 'asdfa',
            'country_id' => '1',
            'city'              => '',
            'hobbies'        => '',
            'twitter_username'      => 'asdfa',
        ])
            ->assertStatus(302)
            ->assertRedirect('home/something');
    }
}

Note

Here we capture an unsuccessful post, with errors. Then, a successful post with redirection

Install

Via Composer

$ composer require eduardoarandah/autohttptests

If you are using laravel < 5.4 add to providers in config/app.php

EduardoArandaH\AutoHttpTests\AutoHttpTestsServiceProvider::class,

Usage

php artisan autohttptest:create

How does it work?

when you run php artisan autohttptest:create yourtest it intercepts all requests and responses through a middleware.

The request is then analyzed and transformed into a test in a file storage/autohttptests.txt

If you're curious, you can see the building of that file in real time with

tail -f storage/autohttptests.txt

Credits

License

The MIT License (MIT). Please see License File for more information.

About

Laravel http tests generator. No more writing tests by hand

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages