Merhaba arkadaşlar, bugün sizlere Laravel’de test yazma ve PHPUnit ile nasıl test otomasyonu yapabileceğinizi anlatacağım. Test yazmak, uygulamanızın güvenilirliğini artırır ve hataları erken aşamada yakalamanızı sağlar. Laravel, PHPUnit ile entegre bir şekilde gelir ve test yazmayı oldukça kolaylaştırır. Gelin, bu süreci adım adım inceleyelim.
Laravel, iki temel test türü sunar:
Test Dosyası Oluşturma
Laravel’de test dosyaları tests dizini altında bulunur. Yeni bir test dosyası oluşturmak için aşağıdaki komutu kullanabilirsiniz:
php artisan make:test UserTest
Bu komut, tests/Feature/UserTest.php dosyasını oluşturacaktır. Eğer bir unit test dosyası oluşturmak istiyorsanız, --unit parametresini ekleyin:
php artisan make:test UserTest --unit
Unit Test Yazma
Unit test, genellikle tek bir sınıf veya metodun doğru çalışıp çalışmadığını kontrol eder. Örneğin, bir matematik işlemi yapan bir sınıfı test edelim:
namespace Tests\Unit;use Tests\TestCase;use App\Services\MathService;class MathServiceTest extends TestCase{ public function test_add_two_numbers() { $mathService = new MathService(); $result = $mathService->add(2, 3); $this->assertEquals(5, $result); }}
Feature Test Yazma
Feature test, uygulamanın belirli bir özelliğinin doğru çalışıp çalışmadığını kontrol eder. Örneğin, bir kullanıcının kayıt olma işlemini test edelim:
namespace Tests\Feature;use Tests\TestCase;use Illuminate\Foundation\Testing\RefreshDatabase;class UserRegistrationTest extends TestCase{ use RefreshDatabase; public function test_user_can_register() { $response = $this->post('/register', [ 'name' => 'John Doe', 'email' => 'john@example.com', 'password' => 'password', 'password_confirmation' => 'password', ]); $response->assertStatus(302); $this->assertDatabaseHas('users', [ 'email' => 'john@example.com', ]); }}
Testleri Çalıştırma
Testleri çalıştırmak için aşağıdaki komutu kullanabilirsiniz:
php artisan test
Bu komut, tüm test dosyalarını çalıştıracak ve sonuçları ekranda gösterecektir.
Laravel’de test yazmak, uygulamanızın güvenilirliğini artırmanın en etkili yollarından biridir. PHPUnit ile kolayca test otomasyonu yapabilir ve hataları erken aşamada yakalayabilirsiniz. Bir sonraki yazımda, Laravel’de Middleware Kullanımı ve Özelleştirme konusuna değineceğim. Görüşmek üzere!