Tartalomjegyzék

< Laravel API

Laravel REST API - Tesztelés

Teszt generálása

Teszteket a következő paranccsal generálhatunk:

php artisan make:test ValamiTest

A teszt neve után a végződés kötelezően Test.

Létrejön

test/Feature/Valami.php
<?php
 
namespace Tests\Feature;
 
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Tests\TestCase;
 
class Valami extends TestCase
{
    /**
     * A basic feature test example.
     *
     * @return void
     */
    public function test_example()
    {
        $response = $this->get('/');
 
        $response->assertStatus(200);
    }
}

Javítsuk így

test/Feature/Valami.php
<?php
 
namespace Tests\Feature;
 
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Tests\TestCase;
 
class Valami extends TestCase
{
    /**
     * A basic feature test example.
     *
     * @return void
     */
    public function test_example()
    {
        $response = $this->get('/api/employees');
 
        $response->assertStatus(200);
    }
}

A tesztfüggvények neve tetszőleges, de a test szóval kell kezdődnie.

Futtatás

A teszt futtatása:

php artisan test

Vagy:

./vendor/bin/phpunit

Két teszt

tests/Feature/EmployeeTest.php
<?php
 
namespace Tests\Feature;
 
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Tests\TestCase;
 
class EmployeeTest extends TestCase
{
    /**
     * A basic feature test example.
     *
     * @return void
     */
    public function test_getemps()
    {
        $response = $this->get('/api/employees');
        $response->assertStatus(200);
    }
    public function test_addemp() {
        $response = $this->post('/api/employees', [
            'name' => 'Arany Ede',
            'city' => 'Miskolc',
            'salary' => 655
        ]);
        $response->assertStatus(201);
    }
}

Adatbázis memóriában

Kapcsolat

Vegyünk fel egy kapcsolat típust:

config/database.php
        'sqlite_memory' => [
            'driver'    =>  'sqlite',
            'database'  =>  ':memory:',
            'prefix'    =>  ''
        ],

Teszt beállítása

Állítsuk be teszteléshez:

phpunit.xml
<server name="DB_CONNECTION" value="sqlite_memory"/>

Cache törlése

php artisan config:cache