Zpět na kurz

Lekce 8: Testování a finalizace e-shopu

Gratuluji, dostali jste se do finální lekce! Dnes se seznámíte s testováním v Laravelu, které je klíčové pro zajištění spolehlivosti vaší aplikace. Také si projdeme, jak e-shop připravit na **produkční nasazení** a jaké jsou další kroky pro váš profesní růst.

Obsah lekce


Úvod do testování v Laravelu

Testování je zásadní pro vývoj robustních a spolehlivých aplikací. Laravel má vestavěnou podporu pro PHPUnit, což usnadňuje psaní testů.

Vytvoření unit testu

Unit test testuje nejmenší možné části aplikace, například jednotlivé metody modelu. Tím se zajišťuje, že každá část funguje správně izolovaně od zbytku aplikace.

Vytvoření testu:

php artisan make:test ProductTest --unit

Otestování modelu Product (např. zda se správně počítá cena s DPH):

// tests/Unit/ProductTest.php

public function test_price_with_tax_is_calculated_correctly()
{
    $product = new Product(['price' => 100]);
    $this->assertEquals(121, $product->priceWithTax());
}

Vytvoření feature testu

Feature test ověřuje chování aplikace jako celku, například API endpointy nebo formuláře. Simuluje reálné interakce uživatele.

Vytvoření testu:

php artisan make:test ProductApiTest

Testování formuláře pro přidání produktu:

// tests/Feature/ProductTest.php

public function test_new_product_can_be_created()
{
    $response = $this->post('/products', [
        'name' => 'Test produkt',
        'price' => 500
    ]);

    $response->assertStatus(302); // Přesměrování po úspěšném uložení
    $this->assertDatabaseHas('products', ['name' => 'Test produkt']);
}

Testování autentizace:

// Test přihlášení uživatele
$user = User::factory()->create();
$response = $this->actingAs($user)->get('/dashboard');
$response->assertStatus(200);

Finální mini e-shop

Váš e-shop nyní obsahuje všechny základní funkce, které jste se v kurzu naučili:

  • **Produkty:** Správa produktů pomocí modelů a databáze.
  • **Košík:** Implementace košíku na session nebo v databázi.
  • **Objednávky:** Zpracování objednávek a odeslání potvrzovacího e-mailu.
  • **Autentizace:** Bezpečné přihlášení a správa uživatelů.

 

Optimalizace pro produkci

Než e-shop nasadíte, je dobré provést optimalizaci, která zlepší výkon.

# Ukládání konfigurace do cache
php artisan config:cache

# Ukládání rout do cache
php artisan route:cache

# Ukládání viewů do cache
php artisan view:cache

# Instalace balíčků pro produkci
composer install --optimize-autoloader --no-dev

Shrnutí kurzu a kam dál

Gratuluji! Úspěšně jste dokončili tento kurz a získali jste solidní základy v Laravelu. Už víte, jak pracovat s routingem, databázemi, formuláři, autentizací a mnoha dalšími věcmi. Co dál?

Prohloubíte své znalosti v oblastech jako jsou:

  • **API Resources:** Elegantní transformace dat pro API.
  • **Queues:** Zpracování časově náročných úloh na pozadí.
  • **Notifications:** Posílání notifikací (e-maily, SMS, Slack) pomocí vestavěného systému.
  • **Další Spatie balíčky:** Pro pokročilé funkce jako například generování PDF, správu médií apod.

Doufám, že se vám kurz líbil a poslouží vám jako skvělý odrazový můstek pro vaši další kariéru. Hodně štěstí! 🎉

David Kojecký

David Kojecký

Programátor ve společnosti Codefit a vývojář pro Mobilní lékárna CZ

´