CodeBlanks Logo Icon CodeBlanks

PHPUnit nedir?

PHP kursu · İleri seviye · Ders 74/92

PHPUnit test çerçevesini ve birim testin amaçlarını öğrenirsin.

PHPUnit nedir?

PHPUnit, PHP için en yaygın test çerçevesidir (test framework). Küçük kod parçalarını tek tek sınar; bunlara birim testi (unit test) denir. test ile başlayan metotları otomatik bulur ve assertEquals gibi iddialarla beklenen sonucu karşılaştırır. composer require phpunit/phpunit komutuyla kurulur. Testler genellikle tests dizinine yazılır ve vendor/bin/phpunit ile çalıştırılır. Hatalar erken yakalanır, yeniden düzenleme (refactor) güvenli hâle gelir.

Test sınıfı yapısı

Her test sınıfı PHPUnit\Framework\TestCase sınıfından türetilir. Önce use PHPUnit\Framework\TestCase; ile içe aktarılır, sonra class CalculatorTest extends TestCase yazılır. Sınıf adı genelde Test ekiyle biter: CalculatorTest, UserTest. Test metotları test ile başlamalı: public function testAdd(): void. PHPUnit bu metotları otomatik bulur ve sırayla çalıştırır.

Uygulama İlk test sınıfını yaz

CalculatorTest sınıfını TestCase'ten türet. testAdd metodu yaz ve $this->assertEquals(4, 2 + 2) ile 2 ile 2'nin toplamının 4 olduğunu denetle.

Örnek çözümü göster
void { $this->assertEquals(4, 2 + 2); } ekle.
Örnek çözüm:
<?php
// Bu derste TestCase'i basitçe tanımlıyoruz; gerçekte PHPUnit\Framework\TestCase kullanılır
class TestCase {
    protected function assertEquals($expected, $actual): void {
        if ($expected !== $actual) {
            throw new Exception("Beklenen $expected, gerçek $actual");
        }
    }
}

class CalculatorTest extends TestCase {
    public function testAdd(): void {
        $this->assertEquals(4, 2 + 2);
    }
}

// Testi çalıştır
$test = new CalculatorTest();
$test->testAdd();
echo "testAdd: BAŞARILI\n";

Kendini test et

  1. PHPUnit hangi testleri çalıştırır?

    • Yalnızca büyük sistem testleri
    • Birim testleri (unit test)
    • Sadece tarayıcı testleri
    • Yalnızca veritabanı sorguları
    Cevabı göster

    Birim testleri (unit test) — Doğru. PHPUnit birim testleri çalıştırır; her test tek bir parçayı sınar.

  2. TestCase'ten türet

    <?php
    
    use PHPUnit\Framework\TestCase;
    
    class CalculatorTest ____ TestCase
    {
        public function testAdd(): void {
            $this->assertEquals(4, 2 + 2);
        }
    }
    
    Cevabı göster
    <?php
    
    use PHPUnit\Framework\TestCase;
    
    class CalculatorTest extends TestCase
    {
        public function testAdd(): void {
            $this->assertEquals(4, 2 + 2);
        }
    }
    
  3. Kavramları eşleştir

    TestCase
    Temel sınıf
    testAdd
    Test metodu
    assertEquals
    İddia
    tests/
    Test dizini

İleri seviye bölümündeki tüm dersler