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.