PHP Test Yazımında Mockery ile Bağımlılıkları Sahtelemek

  • Konbuyu başlatan Konbuyu başlatan sysuser
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 15

sysuser

PREMİUM
Katılım
9 Kas 2025
Mesajlar
174
Tepki puanı
4
Cinsiyet
Kadın

PHP Test Yazımında Mockery ile Bağımlılıkları Sahtelemek​


Unit test yazmak için sınıfın bağımlılıklarını gerçek nesneler yerine kontrol edilebilir sahte nesnelerle değiştirmek gerekir. Mockery bu süreci kolaylaştıran popüler bir kütüphanedir.

Temel Kullanım​

PHP:
use Mockery as m;

public function tearDown(): void { m::close(); }

public function test_sends_email(): void {
    $mailer = m::mock(Mailer::class);
    $mailer->shouldReceive('send')
           ->once()
           ->with(m::type('string'), m::any())
           ->andReturn(true);

    $service = new NotificationService($mailer);
    $service->notify('user@example.com', 'Merhaba');
}

Spy Kullanımı​

Spy'lar metodları çağrıldıktan sonra sorgulamanıza olanak tanır; beklentiyi önceden tanımlamak zorunda kalmazsınız.

PHP:
$mailer = m::spy(Mailer::class);
$service->notify('user@example.com', 'Hi');
$mailer->shouldHaveReceived('send')->once();

PHPUnit'in kendi mock sistemi çoğu durum için yeterlidir; ancak zincirleme beklentiler veya kısmi sahteleme gerektiğinde Mockery tercih edilir.
 
Geri
Üst