0Pricing
PHP Academy · Ders

PHPUnit ile Bağımlılıkları Taklit Etme

Birimleri yalıtmak ve iş birliği yapılan bileşenlerin davranışını denetlemek için sahte nesneler oluşturun.

PHPUnit ile Bağımlılıkları Taklit Etme, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.

Sahte Nesne Kullanmak Neden?

Sahteleme, gerçek bir bağımlılığı (veritabanı, e-posta hizmeti, HTTP istemcisi) denetlenebilir bir sahteyle değiştirir; böylece sınamalar hızlı, yalıtılmış ve belirlenebilir olur.

createMock()

createMock(ClassName::class), sınıfın tüm yöntemlerini uygulayan ve varsayılan olarak null döndüren bir sahte nesne oluşturur.

<?php
$mailer = $this->createMock(Mailer::class);
// All methods return null by default

Yöntem Çağrılarını Bekleme

Yöntemlerin doğru sayıda çağrıldığını doğrulamak için expects() ile once(), exactly(3), never(), any() gibi eşleştiricileri kullanın.

<?php
$mailer->expects($this->once())
       ->method("send")
       ->with("user@example.com", "Welcome!");

Dönüş Değerlerini Tanımlama

Bir sahte yöntemin belirli bir değer döndürmesini sağlamak için willReturn() kullanın.

<?php
$repo = $this->createMock(UserRepository::class);
$repo->method("find")
     ->willReturn(new User(id: 1, name: "Alice"));

willReturnMap()

willReturnMap() kullanarak bağımsız değişkene göre farklı değerler döndürün.

<?php
$cache->method("get")
      ->willReturnMap([
          ["key:1", "value-one"],
          ["key:2", "value-two"],
      ]);

willThrowException()

Hata işleme yollarını sınamak için bir sahtenin istisna fırlatmasını sağlayın.

<?php
$repo->method("find")
     ->willThrowException(new DatabaseException("Connection lost"));

Bağımsız Değişken Eşleştiricileri

Esnek doğrulamalar için with() içinde bağımsız değişken eşleştiricileri kullanın: $this->anything(), $this->equalTo(), $this->isInstanceOf().

<?php
$logger->expects($this->once())
       ->method("log")
       ->with($this->stringContains("error"));

Kısmi Sahteler (getMockBuilder)

Belirli yöntemleri sahtelerken diğerleri için gerçek uygulamaları korumak üzere getMockBuilder() ile onlyMethods() kullanın.

<?php
$svc = $this->getMockBuilder(EmailService::class)
            ->onlyMethods(["sendRaw"])
            ->getMock();
$svc->method("sendRaw")->willReturn(true);

Casus Örüntüsü

Bir casus tüm çağrıları kaydeder; böylece yürütme sonrasında bunları doğrulayabilirsiniz — PHPUnit sahteleri, any() kullanıp bağımsız değişkenleri yakalayarak casus gibi davranabilir.

Sahteleri Ekleme

Sahteleri, sınanan sınıfa kurucu enjeksiyonu aracılığıyla geçirin — sınanabilir ve gevşek bağlı kod için standart örüntü budur.

<?php
$service = new NotificationService($mailer, $logger);
$service->notify($user);

Arayüz ve Somut Sınıf Sahteleri

Arayüzleri sahtemek tercih edilir — hiçbir uygulama ayrıntısı sınamaya sızmaz ve gerçek uygulama değişse bile sınamalar geçerliliğini korur.

Özet

Bağımlılıkları yalıtmak için createMock() kullanın. Beklentileri ve yapay yanıtları ayarlamak için expects()->method()->with()->willReturn() kullanın. Sahteleri kurucu aracılığıyla ekleyin.

Hızlı Kontrol

Bir sahtenin belirli bir değer döndürmesini hangi yöntem sağlar?

Sıkça Sorulan Sorular

“PHPUnit ile Bağımlılıkları Taklit Etme” dersi ücretsiz mi?

Evet — “PHPUnit ile Bağımlılıkları Taklit Etme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.

“PHPUnit ile Bağımlılıkları Taklit Etme” dersinde ne öğreneceğim?

Birimleri yalıtmak ve iş birliği yapılan bileşenlerin davranışını denetlemek için sahte nesneler oluşturun. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

PHP Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“PHPUnit ile Bağımlılıkları Taklit Etme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. PHPUnit Kurulumu ve İlk Test
  2. Doğrulamalar ve Test Metotları
  3. Parametreli Testler için Veri Sağlayıcıları
  4. PHPUnit ile Bağımlılıkları Taklit Etme
← PHP Academy Sayfasına Dön