1 Ağu 2008

JUnit Denemeleri (devam)

Örneğe geçmeden önce bir adres verelim.Eclipse ortamına JUnit kütüphanesi eklenmesini bir örnek üzerinde açıklamış.
http://open.ncsu.edu/se/tutorials/junit/

Şimdi benim yaptığım örneğe gelecek olursak.
JUnit Test mantığını kullanarak programda gerekli olacak metotların yazımı işlemi.
Unit testin mantığı basit ve işlevsel program parçaları geliştirmektir.
Örnekte verilecek bir string parçalanarak işaretten sonraki sayının toplanması yada çıkarılması işlemini yapmaktadır.(Basit hesapmakinesi çok çok basit oldu.)
Sadece toplama ve çıkarma yapıyor hata kontrolü bile yapmıyor.
Önce Test Sınıfımız:CalculatorTests.java
------sınıf başlangıcı---------
package org.calculator.tests;

import org.calculator.models.HesapMakinesi;

import junit.framework.TestCase;

public class CalculatorTests extends TestCase {
private HesapMakinesi hmak;

protected void setUp() {
hmak = new HesapMakinesi();
}

public void testTopla() throws Exception {
hmak.topla(new Integer(10));
hmak.topla(new Integer(5));
assertEquals(15, hmak.getHafiza());

}

public void testCikar() throws Exception {
hmak.topla(new Integer(10));
hmak.cikar(new Integer(3));
assertEquals(7, hmak.getHafiza());

}

public void testHesapYap() throws Exception {
hmak.stringToSonuc("3+5-7");
assertEquals(1, hmak.getHafiza());

}

}
-------sınıf bitişi-------
setUp() metodunda programda gerekecek ORTAK nesneler ve değişkenler yaratılıyor.
yazılan testlerin hepsinde kullanan kod parçacıkları varsa refactoring yapılarak setUp() metodunu içine yazılır.
testTopla() verilen sayıların toplanılıp sonuncunu doğru olup olmadığını kontrol ediyor.Doğru ise test başarıyla geçiyor.
testCikar() verilen iki sayılardan birinciden ikincinin çıkarılmasının doğru yapılıp yapılmadığını kontrol ediyor.Sonuç beklenen ile aynı çıktı ise test başarıyla tamamlanıyor.
testHesapYap() girilen string in parçalandığı zaman işaretlerine göre toplanması ve çıkarılması işlemine tabi tutulan değişkenlerin sonucunun doğru olup olmadığını kontrol ediyor.

Bu kodlara bakıp test yazmanın kolay olduğunu düşünebilirsiniz fakat işler ayrıntıda gizli.
Test yazarken assertEquals() metodunun değişkenlerine özenle dikkat etmelisiniz çünkü yazdığınız değişkenlerin hepsini kabul etmiyor aynı zamanda editor sıralamasına göre işlem yapılar assertEquals(boolean expected, boolean actual)şeklindekini seçip assertEquals(byte expected, byte actual) şekline döndüğünüz zaman assertEquals()'i yeniden yazmanız gerekecek cünkü editör değişiklikleri kabul etmiyor.
http://repository.ops4j.org/classic/junit/junit/3.8.1/api/junit/framework/Assert.html


sizinde göreceğiniz gibi 21 adet assertEquals metodu mevcut ve birbirinin yerine kullanılamıyor.

blogspotun bize verdiği yer yetmedi ikinci yazıda devam edeceğim.

Hiç yorum yok:

Yorum Gönder