PHP Unit Test Kullanımı ve Araçları
Merhaba Arkadaşlar,
Bu yazımızda PHP Unit Test ‘i inceleyecek ve araçlarını kullanmasını öğreneceğiz. Ancak bu defa kolay tarafından ve bir örnekle başlayacağız.
Aşağıdaki kod bildiğiniz gibi normal bir sınıf ve metod örneğidir.
class Sinifim { /** * @assert (0, 0) == 0 * @assert (5, 1) == 6 * @assert (1, 5) == 6 * @assert (3, 3) == 6 */ public function topla($sayi1, $sayi2) { return (int) $sayi1 + $sayi2; } }
Yukarıdaki sınıfı incelediğimizde iki parametre alan bir metodu olan sınıf görüyoruz. Ve bu metod aldığı iki parametreyi toplayıp sonucu döndürüyor. Bu tabiki çok basit bir örnektir ve böyle bir sınıf neredeyse gereksizdir. Ayrıca bu yöntem hızlı ve basit bir Unit Testing ‘ dir. Sonraki yazılarda daha gelişmiş unit testlerde yapacağız. Gelelim bu metodun testle alakalı kısmına.PHP Doc standardına göre @assert tagı ile eklenen bölümler unit test içindir. Parantez içindeki değerler metoda gönderilecek değerlerdir. “==” ise kontrol operatörü, bunların karşısındaki değerlerde parametreler metoda gönderildiğinde gelen sonucun bu değerde olması gerektiğidir. Mesela ilk satırda metod topla(0, 0) parametreleri ile çağrılırsa sonuc 0 olmalıdır demektir.
Nasıl test edileceğine şuan giremeyeceğiz ama biraz bahsetmiş olalım. PHP Unit sınıfına (buda php ile yazılmış classlar topluluğudur) bu classı verirsiniz size bu sınıfın test classını verir ve bunu çalıştırdığınızda test sonuçları ekrana yansır. Kafa karıştırıcı gibi olsada Netbeans IDE ide ile yukarıdaki class’ı test etmek için bir tuş kombinasyonu yeterlidir. Netbeans sizin için test classını oluşturup Unit Test ‘i çalıştırır ve sonuçlarını grafiksel olarak ekrana basar.
devamı gelecek..
çok güzel bir yazı olmuş. peki bu ideler için sınıflar içinde bulunan
@access public yada private
gibi satırların da bir anlamı var mı? iyi çalışmalar.
Merhaba Engin bey,
Bahsettiğiniz tagi PHP Documentor Kullanımı yazımızda incelemiştik.
@access in işlevi ise sınıf metodlarına erişimi (public, private, protected) düzenler.
protected : ait olduğu sınıf ve extent edilen (alt) sınıflardan erişilir,
private : sadece ait olduğu sınıftan erişilir,
public : ait olduğu ve extend edilen sınıflardan birde nesne üzerinden erişebilir.
sayın admin protected ve private tanımlarını yanlış yapmışsınız.
private ile protected in tanimlamalari ters olmus
Şeklinde düzeltelim 🙂
protected : ait olduğu sınıf ve extent edilen (alt) sınıflardan erişilir,
private : sadece ait olduğu sınıftan erişilir,
public : ait olduğu ve extend edilen sınıflardan birde nesne üzerinden erişebilir.