Test-Driven Development

Test-Driven Development (TDD) é uma prática essencial para garantir a qualidade do código. No Laravel, temos ferramentas poderosas como PHPUnit e Pest.

Exemplo com Pest

Pest oferece uma sintaxe mais limpa e legível:

use Tests\TestCase;
use App\Models\Post;

it('can create a post', function () {
    $post = Post::factory()->create([
        'title' => 'Test Post',
        'author_id' => 1,
    ]);
    
    expect($post->title)->toBe('Test Post')
        ->and($post->author_id)->toBe(1);
});

Feature Tests

test('user can view posts', function () {
    $post = Post::factory()->create();
    
    $response = $this->get('/posts/' . $post->slug);
    
    $response->assertStatus(200)
        ->assertSee($post->title);
});