0Pricing
PHP Academy · Ders

Parametreli Testler için Veri Sağlayıcıları

dataProvider kullanarak aynı testi birden çok girdıyla çalıştırın.

Parametreli Testler için Veri Sağlayıcıları, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 3. 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.

Veri Sağlayıcıları Nedir?

Veri sağlayıcısı, bir sınama girdileri kümesi döndüren bir yöntemdir. PHPUnit, her veri kümesi için sınama yöntemini bir kez çağırır; böylece kodu tekrarlamadan birçok girdi birleşimini sınamak kolaylaşır.

Temel Veri Sağlayıcı

Sağlayıcı, iki boyutlu bir dizi döndürür. Her alt dizi, sınama yöntemine yapılan bir çağrıdır.

<?php
public static function additionProvider(): array
{
    return [
        "two positives" => [2, 3, 5],
        "negative"      => [-1, 1, 0],
        "zeros"         => [0, 0, 0],
    ];
}

Öznitelikle Bağlama (PHPUnit 10+)

Bir sınamayı sağlayıcısına bağlamak için #[DataProvider] özniteliğini kullanın.

<?php
use PHPUnit\Framework\Attributes\DataProvider;

#[DataProvider("additionProvider")]
public function test_add(int $a, int $b, int $expected): void
{
    $this->assertSame($expected, (new Calculator())->add($a, $b));
}

Adlandırılmış Veri Kümeleri

Her veri kümesine açıklayıcı bir ad vermek için sağlayıcı dizisinde ilişkisel anahtarlar kullanın — bu adlar sınama çıktısında görünür.

<?php
public static function emailProvider(): array
{
    return [
        "valid email"      => ["user@example.com", true],
        "missing @"        => ["userexample.com",  false],
        "missing domain"   => ["user@",            false],
        "international"    => ["用户@例子.com",      true],
    ];
}

Üreteç Döndürme

Sağlayıcılar, veri kümelerini tembel olarak oluşturmak için dizi yerine bir Generator döndürebilir — çok büyük veri kümeleri için kullanışlıdır.

<?php
public static function largeProvider(): Generator
{
    for ($i = 1; $i <= 1000; $i++) {
        yield "case $i" => [$i, $i * 2];
    }
}

Harici Veri Kaynakları

Gerçek dünya verileriyle sınamaları yürütmek için sınama verilerini sağlayıcı yönteminin içinde CSV, JSON veya veritabanından yükleyin.

<?php
public static function csvProvider(): array
{
    $rows = array_map("str_getcsv", file("tests/fixtures/data.csv"));
    return array_map(fn($r) => [$r[0], (int)$r[1], (int)$r[2]], $rows);
}

Birden Çok Veri Sağlayıcı

Bir sınama yöntemi, öznitelikleri art arda ekleyerek birden çok sağlayıcıya başvurabilir.

Sağlayıcı Statik Olmalıdır

Veri sağlayıcısı yöntemleri static olarak bildirilmelidir; çünkü PHPUnit bunları sınama sınıfını örneklemeden önce çağırır.

Sınır Durumlarını Sınama

Sistematik olarak şunları kapsamak için sağlayıcıları kullanın: sıfır, negatif sayılar, boş dizeler, null, en büyük tamsayı — sınır durumlarının hataları ortaya çıkarma olasılığı olan her yerde.

Veri Sağlayıcısı Çıktısı

Hatalar veri kümesinin adını gösterir: CalculatorTest::test_add with data set "negative" ([-1, 1, 0]) — böylece hangi durumun başarısız olduğunu kolayca belirleyebilirsiniz.

Sağlayıcıları setUp ile Birleştirme

Veri sağlayıcıları ve setUp birlikte kullanılabilir. setUp her yinelemeden önce çalışır ve her veri kümesine sınanan yeni bir nesne sağlar.

Performans Konusu

Sağlayıcılar paket yükleme sırasında çalışır. Sağlayıcılarda maliyetli işlemlerden (HTTP çağrıları, veritabanı sorguları) kaçının — fabrikaları ve fikstürleri tercih edin.

Özet

Veri sağlayıcıları sınama tekrarlarını ortadan kaldırır. Açıklayıcı hata iletileri için ilişkisel anahtarlar kullanın. Sağlayıcıları static olarak işaretleyin ve #[DataProvider] özniteliğiyle bağlayın.

Hızlı Kontrol

Bir veri sağlayıcısı hangi görünürlük belirleyicisine sahip olmalıdır?

Sıkça Sorulan Sorular

“Parametreli Testler için Veri Sağlayıcıları” dersi ücretsiz mi?

Evet — “Parametreli Testler için Veri Sağlayıcıları” 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.

“Parametreli Testler için Veri Sağlayıcıları” dersinde ne öğreneceğim?

dataProvider kullanarak aynı testi birden çok girdıyla çalıştırın. 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 3. dersidir.

“Parametreli Testler için Veri Sağlayıcıları” 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