PHPUnit nedir?
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
-
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.
-
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); } } -
Kavramları eşleştir
- TestCase
- Temel sınıf
- testAdd
- Test metodu
- assertEquals
- İddia
- tests/
- Test dizini