> Das Wichtigste in Kürze: Laravel bietet mit PHPUnit und Pest ein umfassendes Test-Ökosystem: Unit-Tests für isolierte Logik, Feature-Tests für HTTP-Requests und Datenbankinteraktionen, sowie Browser-Tests mit Laravel Dusk für End-to-End-Szenarien. Eine hohe Testabdeckung reduziert Regressionen und ermöglicht sichere Refactorings.
Laravel Testing: Robuste Anwendungen durch Tests (2026)
Veröffentlicht: Juni 2026 | Lesezeit: ca. 14 Minuten | Kategorie: Qualitätssicherung
Automatisierte Tests sind ein unverzichtbarer Bestandteil professioneller Softwareentwicklung. Sie geben Ihnen die Sicherheit, dass Ihre Anwendung wie erwartet funktioniert, und ermöglichen es Ihnen, Änderungen vorzunehmen, ohne Angst haben zu müssen, etwas zu zerstören. Laravel bietet von Haus aus eine hervorragende Testing-Infrastruktur.
Arten von Tests in Laravel
Testtyp Beschreibung Speicherort
Unit-Tests Testen einzelne Klassen/Methoden isoliert tests/Unit/
Feature-Tests Testen ganze HTTP-Anfragen und Antworten tests/Feature/
Browser-Tests Testen die Anwendung im echten Browser (Dusk) tests/Browser/
Tests ausführen
Alle Tests ausführen
php artisan test
Nur Unit-Tests
php artisan test --testsuite=Unit
Nur Feature-Tests
php artisan test --testsuite=Feature
Einen spezifischen Test
php artisan test --filter=UserTest
Ihr erster Feature-Test
php artisan make:test UserRegistrationTest
namespace Tests\Feature;
use Tests\TestCase; use Illuminate\Foundation\Testing\RefreshDatabase;
class UserRegistrationTest extends TestCase { use RefreshDatabase;
public function test_registration_page_can_be_rendered(): void
{
$response = $this->get('/register');
$response->assertStatus(200); }
public function test_new_users_can_register(): void
{
$response = $this->post('/register', [ 'name' => 'Test User', 'email' => 'test@example.com', 'password' => 'password', 'password_confirmation' => 'password', ]);
$this->assertAuthenticated(); $response->assertRedirect('/dashboard'); } }
Datenbank-Testing mit RefreshDatabase
Das RefreshDatabase-Trait setzt die Datenbank nach jedem Test zurück:
use Illuminate\Foundation\Testing\RefreshDatabase;
class PostTest extends TestCase { use RefreshDatabase;
public function test_posts_can_be_created(): void
{
$user = User::factory()->create();
$response = $this->actingAs($user)->post('/posts', [ 'title' => 'Mein erster Beitrag', 'content' => 'Dies ist der Inhalt.', ]);
$this->assertDatabaseHas('posts', [ 'title' => 'Mein erster Beitrag', ]); } }
Model Factories für Testdaten
// database/factories/PostFactory.php class PostFactory extends Factory { public function definition(): array { return [ 'title' => fake()->sentence(), 'content' => fake()->paragraphs(3, true), 'user_id' => User::factory(), 'published' => fake()->boolean(), ]; }
public function published(): static
{
return $this->state(fn (array $attributes) => [ 'published' => true, ]); } }
// In Tests verwenden $post = Post::factory()->create(); $publishedPosts = Post::factory()->count(5)->published()->create();
HTTP-Tests: Assertions
public function test_api_returns_posts(): void { Post::factory()->count(3)->create();
$response = $this->getJson('/api/posts');
$response
->assertStatus(200) ->assertJsonCount(3) ->assertJsonStructure([ '*' => ['id', 'title', 'content', 'created_at'] ]); }
Wichtige Assertions:
assertStatus(200) - HTTP-Statuscode prüfen assertJson(['key' => 'value']) - JSON-Inhalt prüfen assertSee('Text') - Text in Response suchen assertDatabaseHas('table', [...]) - Datenbank prüfen assertAuthenticated() - Benutzer eingeloggt
Mocking und Fakes
use Illuminate\Support\Facades\Mail; use App\Mail\WelcomeEmail;
public function test_welcome_email_is_sent(): void { Mail::fake();
$user = User::factory()->create();
// Aktion die E-Mail auslöst...
Mail::assertSent(WelcomeEmail::class, function ($mail) use ($user) {
return $mail->hasTo($user->email); }); }
Fazit
Testing ist keine optionale Ergänzung, sondern ein fundamentaler Bestandteil professioneller Laravel-Entwicklung. Mit den hier gezeigten Techniken können Sie eine robuste Test-Suite aufbauen, die Ihnen Vertrauen in Ihren Code gibt und Regressionen verhindert.
Referenzen
Laravel Documentation: Testing Laravel Documentation: Database Testing PHPUnit Documentation
Mehr erfahren: Entdecken Sie unsere Individuelle Softwareentwicklung und wie wir Ihr Unternehmen unterstützen können.
Über den Autor
Geschäftsführer & Gründer
Seit über 15 Jahren entwickelt Björn Groenewold Softwarelösungen für den Mittelstand. Als Gründer von Groenewold IT Solutions hat er über 250 Projekte erfolgreich begleitet – von Legacy-Modernisierungen bis hin zu KI-Integrationen.
Weiterlesen
Ähnliche Artikel
Diese Beiträge könnten Sie ebenfalls interessieren.
Laravel Deployment: Von lokal zur Produktion 2026
Bringen Sie Ihre Laravel-Anwendung in die Produktion! Unser Guide führt Sie…
Laravel 12: Alle neuen Features und Verbesserungen 2026
Entdecken Sie alle neuen Features von Laravel 12! Unser umfassender Guide…
Laravel Tutorial Deutsch: Der ultimative Guide für...
Lernen Sie Laravel von Grund auf! Unser umfassendes deutsches Tutorial für…
Kostenloser Download
Checkliste: 10 Fragen vor der Software-Entwicklung
Die wichtigsten Punkte vor dem Start: Budget, Timeline und Anforderungen.
Checkliste im Beratungsgespräch erhaltenPassende nächste Schritte
Relevante Leistungen & Lösungen
Basierend auf dem Thema dieses Artikels sind diese Seiten oft die sinnvollsten Einstiege.
Passende Leistungen
Passende Lösungen
Nächster Schritt
Fragen zum Artikel? Wir helfen gerne.
Unverbindlich besprechen – wir unterstützen Sie bei der nächsten Entscheidung.
Termin vereinbaren
