Merhabalar arkadaşlar;
Geçen hafta Visual Studio üzerinde Unit Test projesi oluşumu ve NUnit Adapter kurulumundan bahsetmiştim. Bu hafta sizlere NUnit Guit Tool kullanarak birim testleri oluşturmayı göstereceğim. Birim testleri yazmak için geliştirilmiş bir çok framework olmak ile beraber bunlar içerisinde en çok kullanılanı NUnit ve MSTest frameworkleridir. Biz NUnit hakkında konuşup güzel bir giriş yapacağız.
NUnit Gui Kurulumu
NUnit ücretsiz olarak bu adresten indirilebilir.
NUnit ile İlk Test Ortamının Hazırlanması
Her ne kadar sonraki süreçlerde Test First Development (Önce Test Et) teknikleri yapmanızı önersem de bu aşamada klasik test süreçlerine göre yazacağız. Çünkü öncelikle test mantığının anlaşılmasında fayda var.
İlk uygulamamızı basit bir örnek üzerinden yapacağız. Klasik bir matematik işlemi yapacağız. Sonraki yazılarımda çok daha gerçekçi örnekler kullanacağım.
Bir adet Visual Studio Solution Oluşturup içine iki adet Class Library ekliyoruz. Burada dikkat etmenizi istediğim husus isimlendirme standartlarına uyulması gerekliğidir. Hangi kütüphaneyi test edeceksek sonuna “.Tests” şeklinde bir isimlendirme yapmayı ihmal etmemeliyiz. Özellikle Team Build süreçlerinde güzel avantajları var.
UnitTest kütüphanesine bir adet Matematik sınıfı ekleyelim. Sınıfımızı public olarak işaretleyin. Zaten testler genel olarak public üyeler üzerinde yapılır.
Sınıfımıza aşağıdaki gibi metod ekleyelim.
Şimdi yazdığımız sınıfı UnitTest.Test library tarafında test edeceğiz. Bu nedenle UnitTest kütüphanesini buraya ekleyelim. Ek olarak da içine bir adet MatematikTest isimli bir sınıf ekleyelim. Burada yine hangi sınıfı test ediyorsak sonuna Test ekledik.
Son olarak nunit.Framework dll ini referans etmek gerekiyor.Default lokasyonu C:\Program Files(x86)\NUnit 2.6.3\bin\framework\unitframework.dll klasörüdür.
İlk Testimizi Yazalım
MatematikTest sınıfına ilk test metodumuzu ekleyelim.
Burada öncelikle [TestFixture] attribute’sinin sınıfın başına eklendiğini görüyoruz. Bu attribute bu sınıfın bir test sınıfı olduğunu belirtmek içindir. NUnit Test Runner Client bu attribute olan sınıfları test etmeyi amaçlar.
[Test] attribute’si ise test metodun test metodu olduğunu gösterir.
Test metodu olarak On_ile_bes_bolundugunde_sonuc_iki_olmalıdır isminde bir metod ekledik. Bu metodun isimlendirmesi çok önemlidir. Arrange ,Act,Assert olarak commentlediğim olanlar bir testte olması gereken üç gruptur diyebiliriz.
Arrange : Testin gereksinim duyduğu sınıfların, verilerin vs. toplandığı yerdir. Biz Matematik sınıfına ihtiyaç duyduğumuz için referansını oluşturduk.
Act: Test etmeyi hedeflediğimiz operasyonu çalıştırdığımız ve actual olarak isimlendirilen değere ulaştığımız yerdir. Actual, test edilecek metodun mevcutta ne döndürdüğünü bulduğumuz yerdir. Dikkat ederseniz biz aşağıdaki gibi bir kullanım ile mevcut degere ulaştık.
Assert : Actual(mevcut) değeri ile beklediğimiz değeri(expected) karşılaştırdığımız alandır. Kısacası doğrulama alanıdır. Yani testin geçtiğine karar veren kısımdır.
Assert sınıfı static metodlara sahiptir. Bunlardan en çok kullanılanları AreEqual, AreNotEqual, AreSame, Fail,IsTrue,IsFalse gibi static metodlardır. Intellisende bu listeyi daha detaylı inceleyebilirsiniz.
İlerleyen yazılarımda Assert sınıfını çok daha detaylı incelemeyi düşünüyorum.
İlk test metodunun çalıştırılması
Bu işlem için kurulumunu yaptığımız NUnit Test Runner Client’ına ihtiyaç vardır. Aşağıdaki şekilde client uygulamızı açalım.
Solution’ı build ederek, açılan test runner client’ta File/Open Project/ UnitTest.Tests.dll ini aşağıdaki gibi ekleyiniz.
Aşağıdaki gibi bir görüntü ile karşılaşacaksınız.
Şimdi Run tuşuna bastığımızda bütün testlerimiz çalıştırılacaktır. Eğer geçerse yeşil geçmezse kırmızı ile karşılaşırız. Bu durumda biz yeşil aldık.
Bu haftalık anlatacaklarım bu kadar arkadaşlar.Haftaya test'imizi çalıştırdığımız zaman oluşacak hatalara göz atacağız.Ardından daha düzenli kod yazmada kullanılan çeşitli metodların kullanımından bahsedeceğim.Şimdilik yazımı sonlandırıyorum haftaya tekrar görüşmek üzere hoşçakalın..
Referans
1)http://www.nunit.org/index.php?p=nunit-gui&r=2.4.3
Hiç yorum yok:
Yorum Gönder