Visual Studio 2010 ile Unit Test

Hemen hemen hepimizin başına gelmiştir; fonksiyonda ufak bir değişlik yaparız sonrasında ona bağlı bazı fonksiyonlar çalışmaz hale gelir. Bunu ya Tester’lar fark eder ya da son kullanıcılardan gelen bildirimlerden anlarız. Geçtiğimiz günlerde, varlığını daha önce duyduğum ama kullanmadığım bir teknolojiyi anlatacağım; “Unit Test”. Visual Studio 2010 ile birlikte gelen yeniliklerden bir tanesi olan “Unit Test” bize büyük bir kolaylık sağlıyor.Tester’lara gitmeden önce kendimiz çok hızlı ve kolay bir şekilde Test fonksiyonlarımızı hazırlayıp kendimiz test edebiliyoruz. Böylece fonksiyonlarımızda bir değişiklik yaptığımızda aklımızda “acaba başka bir yer bozuldu mu?” gibi endişeler taşımıyoruz.

Basit bir örnek ile başlayalım; aritmetik işlemleri yapacağımız Aritmetik isminde bir sınıfımız olsun ve aşağıdaki fonksiyonlara sahip olsun.

Basit olarak bu sınıfın fonksiyonlarına bir test projesini adım adım oluşturalım;

Kodumuzun bir yerdinde sağ tuşa tıklayıp “Create Unit Tests…” seçeneğini seçiyoruz.

Çıkan ekranda hangi fonksiyonlar için test fonksiyonları üretmek istediğimizi seçebiliyoruz. Projemizde test edilmesini istemediğimiz fonksiyonlar varsa buradan eleyebiliyoruz. Aynı şekilde farklı namespace’lerdeki sınıflarımızı ve fonksiyonlarımızı buradan görüp tek bir test projesinin altında toplayabiliyoruz.

Test projemizin adını yazıp “Create” butonuna basıyoruz.

Solution Explorer penceresinde TestProject adında bir test projesi otomatik olarak oluştu aynı şekilde “AritmetikTest.cs” adında test kodlarımızın olduğu bir .cs dosyasıda oluşturuldu.

AritmetikTest.cs sayfasını açtığımızda her fonksiyon için bir test fonksiyonu oluşturulduğunu görüyoruz. Şimdi bu fonksiyonların içlerini inceleyelim;

Fonksiyonu incelediğimizde Aritmetik sınıfını target isminde üretildiğini görüyoruz. Otomatik olarak a ve b isimli parametre değişkenleri de tanımlanmış. “Expected” isimli değişken bizim beklediğimiz sonucu girebileceğimiz bir değişken, “actual” ise fonksiyondan geri dönen değeri tutan değişken. Assert sınıfının AreEqual fonksiyonu ise bizim beklediğimiz ve fonksiyondan geri dönen değişkeni karşılaştırıyor, eşit değilse hata veriyor.

Visual Studio’da bu imlece bastığımızda test projemizdeki tüm test fonksiyonları çalıştırıyor ve bize sonucu gösteriyor.

Toplama fonksiyonumuz başarılı bir şekilde tamamlandığını, Çıkarma ve Çarpma test fonksiyonlarında uyarı mesajı, Bölme fonksiyonumuzda ise hata olduğunu görüyoruz. Bölme fonksiyonundaki Exception parametre değişkenleri default 0 olduğundan ve 0’a bölme hatalı olduğundan kaynaklanıyor.

CarpTest fonksiyonunda ufak bir değişiklik yapalım. Fonksiyona a = 5 ve b = 5 değerlerini verelim, çarpma da hata yaparak 20 yazalım, sonra beklediğimiz değeri ve fonksiyondan dönen değeri karşılaştıralım. Eğer fonksiyondan gelen değer 20’den büyük ise bir uyarı mesajı verelim. Test fonksiyonumuzu çalıştırdığımızda aşağıdaki sonuçları alacağız;

Birinci hata yine BolTest fonksiyonundaki değerleri (0,0) değiştirmediğimden kaynaklanıyor, CikarTest fonksiyonunda da uyarı mesajımızı verdik, CarpTest fonksiyonundaki hata ise 5*5 işleminden 20 sonucunu beklediğimizden kaynaklanıyor. Toplama fonksiyonumuz ise başarıyla tamamladığımızı söylüyor.

 

Temel olarak bir sınıfın fonksiyonlarına “Test Projesi” ve “Test Fonksiyonları” oluşturduk. “Unit Test” işlemi Visual Studio 2010 ile gerçekten çok basit ve hızlı. İlerleyen zamanlarda daha karmaşık fonksiyonlar içinde örnekler yapacağız.

Uzun zamandır makale ekleyemiyordum, bundan sonra ümid ediyorum ki daha fazla makale ekleyeceğim. (En azından bunun için çalışacağım)

 

Başka bir makalede görüşmek üzere…

Bir cevap yazın

Your email address will not be published. Please enter your name, email and a comment.