Skip to content

September 21, 2010

5

PHP Unit Test Kullanımı ve Araçları

PHP Unit Test

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..

Toplam 5 Yorum Yorum Yaz
  1. engin
    Dec 1 2011

    ç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.

    Reply
    • Dec 1 2011

      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.

      Reply
      • test
        Aug 16 2012

        sayın admin protected ve private tanımlarını yanlış yapmışsınız.

        Reply
      • ibrahim
        Oct 9 2012

        private ile protected in tanimlamalari ters olmus

        Reply
        • Mustafa KÖSE
          Apr 17 2013

          Ş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.

          Reply

Sizin fikriniz nedir? Lütfen aşağıdaki formu kullanarak yorum yapın.

(gerekli)
(gerekli)