Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Filament Kaynaklarını Nasıl Test Edersiniz | Laravel Kişisel Finans Pano Uygulaması
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Filament Kaynaklarını Nasıl Test Edersiniz | Laravel Kişisel Finans Pano Uygulaması

Yazılım

Filament Kaynaklarını Nasıl Test Edersiniz | Laravel Kişisel Finans Pano Uygulaması

teknomers
Son güncelleme: 21 Şubat 2026 00:53
teknomers
Paylaş
Paylaş

Kaynaklarımızı kurduğumuza göre, bunların beklendiği gibi çalıştığından emin olmanın zamanı geldi. Bu derste BankAccount, Budget ve Category kaynakları için özellik testleri yazacağız. Özellikle kullanıcıların yalnızca kendi verilerini görebildiklerine odaklanacağız.


Pest Kurulumu

Öncelikle, projemize Pest eklememiz gerekiyor. Pest, basitlik ve şıklık üzerine odaklanmış bir test çerçevesidir.

composer require pestphp/pest --dev --with-all-dependencies
php artisan pest:install

Ayrıca, User modelimizin Filament testleri için hazır olduğundan emin olmalıyız. Testlerimizde bir Filament kullanıcısını doğru bir şekilde simüle edebilmek için User modelimizin FilamentUser sözleşmesini uygulaması gerekmektedir. Bu, actingAs kullandığımızda kullanıcının panel erişimine doğru bir şekilde sahip olmasını sağlar.

app/Models/User.php dosyasını güncelleyin:

use Filament\Models\Contracts\FilamentUser;
// ...

class User extends Authenticatable implements FilamentUser
{
    // ...

    public function canAccessPanel(\Filament\Panel $panel): bool
    {
        return true;
    }
}

Kurulum ve model değişikliklerini bu commit’ten görüntüleyebilirsiniz.


Banka Hesabı Kaynağını Test Etme

BankAccountResource ile başlayalım. Aşağıdaki doğrulamaları yapmalıyız:

  1. Sayfayı render etmek.
  2. Kullanıcıya ait banka hesaplarını listelemek.
  3. Diğer kullanıcıların banka hesaplarını listelememek.
  4. Hesap oluşturmak, düzenlemek ve silmek.

Yeni bir test dosyası oluşturun: tests/Feature/Filament/Resources/BankAccountResourceTest.php.


Render Etme ve Listeleme

Önce kullanıcının oturum açması için actingAs($user) kullanıyoruz ve ardından sayfa URL’sine erişiyoruz.

use App\Filament\Resources\BankAccounts\Pages\ManageBankAccounts;
use App\Models\BankAccount;
use App\Models\User;
use Livewire\Livewire;
use function Pest\Laravel\actingAs;

it('can render page', function () {
    $user = User::factory()->create();

    actingAs($user)
        ->get(ManageBankAccounts::getUrl())
        ->assertSuccessful();
});

it('can list bank accounts', function () {
    $user = User::factory()->create();
    $bankAccount = BankAccount::factory()->for($user)->create();

    Livewire::actingAs($user)
        ->test(ManageBankAccounts::class)
        ->assertCanSeeTableRecords([$bankAccount]);
});


Kapsam Testi (Diğer Kullanıcı Testi)

Bu kritik bir testtir. Bir kullanıcı ve başka bir kullanıcı oluşturarak mevcut kullanıcının diğer kullanıcının kaydını görmemesini bekliyoruz.

it('cannot see other users bank accounts', function () {
            $user = User::factory()->create();
            $otherUser = User::factory()->create();
            $otherBankAccount = BankAccount::factory()->for($otherUser)->create();

            Livewire::actingAs($user)
                ->test(ManageBankAccounts::class)
                ->assertCanNotSeeTableRecords([$otherBankAccount]);
        });


Eylemler: Oluştur, Düzenle, Sil

Filament, eylemleri doğrudan test etmek için mükemmel yardımcılar sağlar.

it('can create bank account', function () {
            $user = User::factory()->create();

            Livewire::actingAs($user)
                ->test(ManageBankAccounts::class)
                ->mountAction('create')
                ->setActionData([
                    'name' => 'My Main Bank',
                    'balance' => '1000.50',
                ])
                ->callMountedAction()
                ->assertHasNoActionErrors();

            assertDatabaseHas('bank_accounts', [
                'user_id' => $user->id,
                'name' => 'My Main Bank',
                'balance' => 100050, // Değer, Caster sayesinde tam sayı olarak
            ]);
        });

Veritabanında 100050 değerinin olduğuna dair bir doğrulama görmek önemlidir, çünkü para işlemlerini tam sayılar olarak yönetiyoruz!

Banka Hesabı kaynağı için tam test kütüğünü bu commit’ten inceleyebilirsiniz.


Bütçe ve Kategori Kaynakları

BudgetResource ve CategoryResource testleri de aynı şekilde ilerliyor. Özellikle detaylı eylemlerin (oluşturma ve düzenleme gibi) çalıştığından emin olmamız gerekir; ancak en önemlisi, kapsam kurallarını doğrulamaktır.

Örneğin, kategori testleri, bir kullanıcının yalnızca kendi kategorilerini düzenleyebilmesini sağlamalıdır.

Uygulamanın detaylarına Bütçe kaynağı testleri için ve Kategori kaynağı testleri için göz atabilirsiniz.


Testlerin Çalıştırılması

Son olarak, test kütüğümüzü çalıştırarak her şeyin uygun şekilde çalıştığını görmek için:

php artisan test

Tüm kaynak testlerinin geçtiğini doğrulayan bir çıktı görmelisiniz:

PASS Tests\Feature\Filament\Resources\BankAccountResourceTest
✓ it can render page
✓ it can list bank accounts
✓ it cannot see other users bank accounts
...


🎓 Bu Uygulamayı Oluştur ve Ücretsiz Sertifika Al

Bu kılavuzu faydalı bulduysanız, tüm uygulamayı baştan inşa edebileceğiniz ücretsiz bir kurs bulacaksınız.

Öğrenecekleriniz:

  • 🏗️ Gelişmiş Laravel Mimarisi
  • 📊 FilamentPHP ile Dashboard Oluşturma
  • 💰 Parayı kodla profesyonel bir şekilde yönetme

→ Diğer öğrencilerle beraber maiobarbero.dev’de katılın

İyi kodlamalar!

Kaynak: Orijinal Makale

Contents
  • Pest Kurulumu
  • Banka Hesabı Kaynağını Test Etme
    • Render Etme ve Listeleme
    • Kapsam Testi (Diğer Kullanıcı Testi)
    • Eylemler: Oluştur, Düzenle, Sil
  • Bütçe ve Kategori Kaynakları
  • Testlerin Çalıştırılması
  • 🎓 Bu Uygulamayı Oluştur ve Ücretsiz Sertifika Al
Yeni ShipTime API Client ile PHP Gönderim Entegrasyonlarınızı Güçlendirin
Laravel API Kimlik Doğrulaması: Riad Hasan’dan Pratik Bir Rehber
REST API’leri Mobil Uygulamanızı Yok Ediyor (Laravel BFF Mimarisi)
Livewire 4 Tek Dosya Bileşenleri: Tek Dosyada Canlı Arama Oluşturma
Laravel Dağıtım Kontrol Listesi: Canlıya Geçmeden Kontrol Edilmesi Gereken 50 Madde
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Xbox Devrimi Oyun Stüdyosu İşten Çıkarmaları Gerektirmiyor
Sonraki Makale Yatırımcıları Katı Hal Transformatörleri Üzerine Heyecanlandıran Nedenler

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Günlük İş Akışınız için Aranabilir Laravel Eloquent Kısa Bilgiler Rehberi
Yazılım
Yeni Modern Warfare 4 DMZ Modu ile Çarpıcı Gelişmeler Sunuyor
Oyun
2026 Dünya Kupası’nda Statlara Tek Kullanımlık Su Şişesi Alınabilecek mi?
Spor
Pencereleri açıyor, musluktan su içiyor: Dört kişiyi yaraladıktan sonra aranan “son derece zeki” bir ayı
Dünyadan Güncel Haberler
2026’da Jüpiter ve Venüs Kesişimi İki Parlak Gezegeni Gözlemleyin!
Bilim
Gears of War: E-Day PS5’e Gelmeyecek!
Liste
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?