Geçen haftayı hatırlayacak olursak, kaliteli birim testlerin hangi özellikte olması gerektiğinden bahsetmiştik. Böylelikle kodumuzun düzgün çalışıp çalışmadığını kontrol ederken daha rahat yöntemler kullanırsak, işlerimizin kolaylaşacağını gördük. Bu hafta sizlere unit testing yaparken sıkça kullanılan assert sınıfının içersinden bulunan çeşitli metodları ve ne işe yaradıklarından bahsedeceğim. Assert metodu ile iddia edilen durum doğru ise testimiz başarılı, aksi takdirde başarısız olmuş olur.
Sıklıkla kullanılan assert metodları aşağıdaki gibidir;
- AreEqual Method
- AreNotEqual Method
- AreNotSame Method
- AreSame Method
- Equals Method
- Fail Method
- Inconclusive Method
- IsFalse Method
- IsInstanceOfType Method
- IsNotInstanceOfType Method
- IsNotNull Method
- IsNull Method
- ReplaceNullChars Method
Assert.AreEqual Method(Object,Object):
Belirtilen iki nesnenin eşit olduğunu doğrular. Nesneler eşit değilse test işlemi başarısız olur.
Testin başarısız olması durumunda AssertFailedException hatası oluşur. Bu metod için dikkat edilmesi gereken bir diğer nokta ise mantıksal değerlerin eşit olması halinde farklı sayısal türler eşit olarak kabul edilir. Örneğin 26 M 26'ya eşittir.
Assert.AreNotEqual Method(Object,Object):
Belirtilen iki nesnenin eşit olmaması durumunu doğrular. Nesnelerin eşit olması durumunda onaylama işlemi başarısız olur.
AreEqual metoduna benzer şekilde, testin başarısız olması durumunda AssertFailedException hatasıyla karşılaşırız.
Assert.AreNotSame Method(Object,Object):
Birbirinden farklı iki nesne geldiği durumunu doğrular. Eğer iki tane aynı nesne gelmesi durumunda onaylama işlemi başarısız olur.
Assert.AreSame Method(Object,Object,String):
Belirtilen iki nesnenin aynı olması durumunda çalışır eğer beklenen nesne farklı gelirse test başarısız olur ve ekranda birde hata mesajı görüntülenecektir.
Assert.Equals Method:
İki nesnenin eşit olup olmadığını kontrol etmeye yarar, AreEqual metoduyla aynı işlevi yapar. Bu metodu kullanmaktansa ben sizlere AreEqual metodunu kullanmanızı öneririm.
Assert.Fail Method (String,Object[]):
Herhangi bir koşul denetlemeden onaylama işlemi başarısız olur. Test sonucunda hatanın içeriğini gösteren bir ileti görüntüler ve koşullara uygun biçimde parametre oluşturur.
Testin başarısız olması durumunda AssertFailedException sınıfı çalışır.
Assert.Inconclusive Method (String,Object[]):
Test'in onaylanma işleminden sonra sonucun oluşmadığı durumlarda ortaya çıkar. Neticesiz bir işlem yaptığınızı anlarsınız. Testin sonucunda bir ileti görüntüler ve sonucu düzeltecek şekilde biçimlendirme uygular.
Bir testin uygulamaya konmadığı zamanlarda AssertInconclusive sınıfı oluşur.
Assert.IsFalse Method(Boolean,String):
Öncelikle teste ait bir koşul belirtilir fakat belirtilen koşulun doğruluğundan emin değilizdir. Bu durumda IsFalse metodu sayesinde kontrol yapılır ve hatanın içeriğini görüntüleyen mesaj ekrana bastırılır.
Assert.IsInstanceOfType Method(Object,Type,String,Object[]):
Üretilen nesnenin beklenen sınıfa ait olup olmadığının kontrolü yapılırken uygulanır. Beklenen öğe parametre olarak belirtilerek gelip gelmediği kontrol edilir ve öğe bulunmazsa hata mesajı ekrana bastırılır. Sonuç olarak kullanılacak parametlerde metod içerisinde belirlenebilir.
Assert.IsNotInstanceOfType Method(Object,Type):
Belirtilen nesnenin beklenen türde bir öğe olmadığı durumda ortaya çıkar. Beklenenin yanlış türde bir nesne olduğu bildirilir. IsInstanceOfType metoduna benzer özellikte çalışır.
Eğer null bir değer gelirse test sonucundan o zaman AssertFailedException hatası meydana gelir.
Assert.IsNotNull Method(Object,String,Object[]):
Önceki alıştırmada belirttiğim exception olayının kontrolü esasen bu metod sayesinde gerçekleştirilmektedir. Yani bir nesnenin üretilip üretilmediği buradan kontrol edilir.
Assert.IsNull Method(Object):
Assert.IsNotNull metodunun aksine test tarafından bir nesne üretilmediği zaman çalışan assertion olayıdır. Eğer doğru ya da yanlış bir nesnenin varlığı söz konusu olduğunda fail olacaktır.
Assert.ReplaceNullChars:
Bir dizede null karakter kullanıldığı zaman ('\0') değeri "\\0" değeriyle değiştirilir. Null karakter kullanıldığı zaman proğramın içeriğini değiştirmek yerine otomatik olarak içersi doldurularak testlerin doğru sonuçlar vermesi sağlanır.
Görüldüğü üzere arkadaşlar assert metodunun pek çok türü bulunmaktadır. Unit testing yaparken belirtilen koşulların doğru ya da yanlış olması duruma göre testin durumu kontrol edilir. Kullanılan metodlar sayesinde hatanın nerelerde oluştuğu rahatlıkla görülebilir. Bu haftalık anlatacaklarım bu kadar arkadaşlar, assert metodu unit testing konusunun olmazsa olmazlarındandır ve iyi kavranılması gerekmektedir. Haftaya tekrar görüşmek üzere hoşçakalın..
hocam equals metod ile AreEquals arasındaki farkdan biraz bahseder misiniz?
YanıtlaSil