mgjgid/laravel-http-tests-generator

Autogenerate http tests for laravel

dev-master 2024-03-05 09:21 UTC

This package is auto-updated.

Last update: 2024-05-05 09:42:09 UTC


README

Latest Version on Packagist Software License Total Downloads

Generate http tests by clicking through your Laravel app

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.