Konuyu görüntüle
IUCODERS FORUM > Programlama > JAVA > netbeans'de junit
Yazar
audtou


avatar
malatya
Kayıt: 31.08.2006
23.10.2007-20:41 #29303
NetBeans de yazdıgım java classında assert anahtar sözcüğünü nasıl kullanabilirim? Assertion özelliği
için extra ayarlar mı yapmam lazım?
Bi de NetBeans de classın başına "import.junit.framework.*" yazdıgımda hata veriyor ama test klasorü altıda olusturdugum "classIsmiTest.java" classında tepede "import.junit.framework.*" kısmı yer alıyor.
Bu nasıl iştir anlamadım d oh





bitiyo lan!
Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
23.10.2007-21:30 #29310
assert için ekstrabir ayar yapmana gerek yok. compilera / jvm ye
-ea (enableassertion) yada -da (disable assertion) şeklinde bir parametre vermen lazım.
eğer test kodunu yazıyorsan assertiona gerek yok.

netbeanste JUnit test kısmı ayrı bir projedir. Yazdığım programı test koduyla birlikte vermeyeceksen zaten uygulamanın içinde junit olması gereksiz. zaten test kodu uygulama kodundan ayrı olmalıdır. illada juniti eklemek istiyorsan projede kütüphane olarak juint jarlarını eklemen lazım.





N/A
Yazar
audtou


avatar
malatya
Kayıt: 31.08.2006
24.10.2007-02:35 #29329
orhan yazdi
 
assert için ekstrabir ayar yapmana gerek yok. compilera / jvm ye
-ea (enableassertion) yada -da (disable assertion) şeklinde bir parametre vermen lazım.
eğer test kodunu yazıyorsan assertiona gerek yok.

netbeanste JUnit test kısmı ayrı bir projedir. Yazdığım programı test koduyla birlikte vermeyeceksen zaten uygulamanın içinde junit olması gereksiz. zaten test kodu uygulama kodundan ayrı olmalıdır. illada juniti eklemek istiyorsan projede kütüphane olarak juint jarlarını eklemen lazım.


projeye junit eklemiycem ama "Test Driven Development" konusunu araştırıyodum, onun için kod yazarken lazım oldu.Netbeans da test sınıfı olusturunca sınıfın icine default metodlar koyuyo.Calıştıgım kaynakta Test sınıfları main() metodu içermez yazıyodu fakat NetBeans main() metodunu da eklemiş.Test kodunu derleyince de şöyle bir hata veriyor:

Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.047 sec

Testcase: warning(junit.framework.TestSuite$1):	FAILED
No tests found in algoritma.PowerCalculatorTest
junit.framework.AssertionFailedError: No tests found in algoritma.PowerCalculatorTest

Test algoritma.PowerCalculatorTest FAILED
C:Documents and Settings\audtou\JavaDenemeleri\
bprojectuild-impl.xml:475: Some tests failed; see details above.
BUILD FAILED (total time: 0 seconds)



Zaten konsolda derlerken -ea ekliyorum orda sorun yok ama NetBeans da bi türlü beceremedim assertionu.

Bide "Test Driven Development" konusunda bilgin var mı?güzel bi yönteme benziyo anladıgım kadarıyla





bitiyo lan!
Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
24.10.2007-10:57 #29332
şoyle bir class olsun
/**
 *
 * @author orhan
 */
public class Deneme {
    
    /** Creates a new instance of Deneme */
    public Deneme() {
    }
    public int getInt(String val){
            return Integer.parseInt(val);
    }
}

test packages kısmına sağ tık yapıp Junit for existing class Deneme classını seç.
TestPackages altına test kodu oluşturulacak.
import junit.framework.*;

/**
 *
 * @author orhan
 */
public class DenemeTest extends TestCase {
    
    public DenemeTest(String testName) {
        super(testName);
    }

    protected void setUp() throws Exception {
    }

    protected void tearDown() throws Exception {
    }

    public void testGetInt() {
        System.out.println("getInt");
        
        String val = "";
        Deneme instance = new Deneme();
        
        int expResult = 0;
        int result = instance.getInt(val);
        assertEquals(expResult, result);
//        fail("The test case is a prototype.");
    }
}

fail olan kısma comment ekleyip herhalükarda oraya düşmesini engelliyoruz.
expResult = 0; bu senin metodun çağrıldıktan sonra dönecek cevap int result buda fonksiyonun döndürdüğü cevap String val = ""; bu fonksiyona girilen parametre.
fonksiyonda hata tutmadık o yüzden "" verince test fail oldu. Hatayı tespit etmiş olduk.
kodu şu şekilde değiştirince
/**
 *
 * @author orhan
 */
public class Deneme {
    
    /** Creates a new instance of Deneme */
    public Deneme() {
    }
    public int getInt(String val){
        try{
            return Integer.parseInt(val);
        }catch(NumberFormatException e){
            return  0;
        }
    }
}

testten geçti.

Test kodu en basit haliyle bu. sen metodunu daha detaylı test eden bir kod yazıp test kodunu geliştirebilirsin. özellikle takımlar halinde kod yazarken test kodu yazmak hataların tespit edilmesini daha kolaylaştırır.







N/A
Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
24.10.2007-11:04 #29334
test kodunu build toolları da çalıştırıp test sonuçlarına göre relase hazırlayabilir.
http://download.jboss.org/jbosstools/builds/nightly/200710240013-nightly/index.html
gibi
Unit Test Results Tests 116
Errors 28
Failures 8
68% tests passed






N/A
Yazar
audtou


avatar
malatya
Kayıt: 31.08.2006
24.10.2007-19:04 #29350
orhan yazdi
 

fail olan kısma comment ekleyip herhalükarda oraya düşmesini engelliyoruz.


yaa ben fail() kismini degistirmiyormusumbeat up.Her seferinde oraya takiliyormus.
Zaten bastada yaziyormus ``// TODO review the generated test code and remove the default call to fail.`` diye
Cok tesekkurler Orhan





bitiyo lan!
Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
25.10.2007-09:16 #29385
kolay gelsin. JUnit kullanacaksan kodunun statik fonksiyon ve statik değişkenlerine dikkat etmen lazım. çok sayıda statik/değişken methoddan oluşan kodu test etmek daha zordur.





N/A
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb