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
- Vytvoření unit testu
- Vytvoření feature testu
- Finální mini e-shop
- Optimalizace pro produkci
- Shrnutí a další kroky
Ú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í! 🎉
´