testing Öne Çıkan 5 dk okuma 20 Mart 2026

Pest PHP ile Modern ve Akıcı Testler Yazma Rehberi

PHP ekosisteminin en popüler test frameworklerinden Pest PHP ile akıcı, okunabilir ve güçlü test senaryoları kurgulamayı öğrenin.

Tunahan Çalışkan
Tunahan Çalışkan
Yazar & Topluluk Katkıcısı

Pest PHP ile Modern ve Akıcı Testler

Pest PHP, PHPUnit üzerine inşa edilmiş, zarif ve fonksiyonel sözdizimine sahip bir test çatısıdır. Test yazma deneyimini eğlenceli ve anlaşılır hale getirir.

Neden Pest?

Geleneksel PHPUnit testlerinde karşılaştığımız sınıf kalıtımları, uzun anotasyonlar ve tekrarlayan metot tanımları yerine Pest, akıcı bir API sunar:

test('kullanıcı ana sayfayı başarıyla görüntüleyebilir', function () {
    $response = $this->get('/');

    $response->assertStatus(200)
             ->assertSee('laravel.net.tr');
});

Beklenti Zincirleri (Expectations)

Pest'in en güçlü yanlarından biri zengin expectation metodlarıdır:

test('sayısal ve dizi doğrulamaları', function () {
    expect([1, 2, 3])
        ->toBeArray()
        ->toHaveCount(3)
        ->toContain(2);

    expect(10)->toBeGreaterThan(5);
});

Dataset Kullanımı

Farklı girdi senaryolarını test etmek dataset özelliği ile çok kolaydır:

test('geçerli e-posta adresleri kabul edilir', function (string $email) {
    expect(filter_var($email, FILTER_VALIDATE_EMAIL))->not->toBeFalse();
})->with([
    'tunahan@example.com',
    'info@laravel.net.tr',
    'hello@cekirdekod.com',
]);

Mimari Testler (Architecture Testing)

Pest Architecture eklentisi sayesinde projenizin mimari kurallarını bile test edebilirsiniz:

test('modeller doğrudan request nesnesine erişmemelidir')
    ->expect('App\Models')
    ->not->toUse('Illuminate\Http\Request');