PHPUnit, PHP ile yazılmış uygulamaların test otomasyonu süreçlerini kolaylaştırmak üzere çeşitli işlevler ve sınıflar içeren bir birim testi çatısıdır. Sebastian Bergmann tarafından gelişitilen PHPUnit'in temelleri Kent Beck'in yaratıcısı olduğu SUnit birim testi ailesinin uzantısı olan xUnit birim testi çatısına kadar uzanmaktadır.[1]
Kaynak kodu GitHub üzerinde barındırılan PHPUnit, aşağıdaki ilkeler doğrultusunda gelişimini sürdürmektedir:[2]
- Nasıl yazılacağı kolay öğrenilebilmeli - Teslerin nasıl yazılacağını öğrenmek zor olursa, geliştiriciler test yazmayı öğrenmeyeceklerdir.
- Kolay yazılabilmeli - Şayet test yazmak kolay değilse, geliştiriciler test yazmayacaklardır.
- Kolay okunabilmeli - Birim testi kodlarının etrafı karmaşık yapılar ve test içeriğinin okunabilirliğini düşürecek kod bloklarıyla sarılmamalı.
- Kolay çalıştırılabilmeli - Testler sadece bir tuşa dokunarak çalıştırılabilmeli ve test sonucu net ve okunabilir olarak gösterilmeli.
- Hızlı çalışmalı - Birim testleri gün içerisinde yüzlerce hatta binlerce kez çalıştırılabileceğinden, hızlı çalışmalıdırlar.
- Yalıtılmalı - Birim testlerinin çalışma sırası değişse dahi bir testin sonucu bir diğer testi etkilememeli.
- Birleştirilebilmeli - Herhangi bir sayıdaki birim testi yalnız başına ya da farklı kombinasyonlar halinde çalıştırılabilmelidirler. Bu ancak iyi bir yalıtımla mümkündür.