Menggunakan JUnit Untuk Tes Unit (Part 1)
Testing adalah suatu mekanisme yang vital di dalam software development, apalagi jika anda adalah seorang developer yang tidak ingin program anda menjadi program buangan alias tidak digunakan lagi pada saat pembuatan software sudah selesai.. Saya rasa semua orang akan setuju dengan saya, testing harus menjadi bagian yang penting dalam software development, maka dari itu saat ini saya ingin mengeksplorasi sedikit tentang testing unit menggunakan JUnit..
Saat ini versi JUnit yang saya gunakan adalah 4.4, dan kita akan mencoba sedikit testing dasar yang akan menjadi fondasi kita selanjutnya jika kita ingin mempelajari testing yang lebih dalam…
Pada dasarnya, langkah pertama yang harus kita lakukan adalah mendownload JUnit terlebih dahulu.. Jika anda sudah pernah mendownload nya, maka anda bisa melewati step ini… Setelah berhasil mendownload filenya, extract di manapun (terserah anda) asal jangan di direktori Java_Home, atau direktori instalasi Java kita.. Sebagai acuan saja, saya mengextract nya di Desktop…
Lalu langkah kedua yang akan kita lakukan adalah menset classpath untuk JUnit ini.. Bagi pengguna windows, gampang saja, tinggal klik kanan my computer —> Advanced —> Environment Variables —> setelah itu masukkan classpath anda di sana…, gampang bukan? Kalau pengguna linux, saya lupa nih caranya!!
jangan lupa set classpath di tempat di mana file class anda akan disimpan…
Sudah?? Kalau begitu kita bisa berlanjut ke langkah yang ketiga… Ini mungkin menjadi langkah yang cukup mengasikkan buat kita semua, karena anda harus mulai “ngoding”.. Nah, untuk mentest sesuatu, kita harus menyediakan apa yang mau ditest kan? Maka dari itu buat satu kelas yang isinya adalah method yang ingin ditest..
Ikuti saya saja yah!! Buat kelas seperti di bawah ini (tinggal copy paste aja koq repot)..
public class Bermasalah
{
public int tambahBil(int a, int b)
{
return(a - b);
}
}
Disimpan dengan nama file apa sudah tau kan? Sip, lanjut!! Kelas yang kedua yang akan kita buat adalah kelas testing yang akan menguji method tersebut.. Sebagai manusia kita sudah tau kalau itu adalah method yang tidak benar.., semestinya menambah dua bilangan dari parameternya, eh malah mengurangi… Kita akan lihat kongkritnya di kelas TestMethod ini
import org.junit.*;
import static org.junit.Assert.*;
public class TestingMethod
{
@Test public void testMethod()
{
Bermasalah b = new Bermasalah();
assertEquals(3, b.tambahBil(1,2));
}
}
Nah, lalu simpan dengan nama sesuai kelasnya (karena public), setelah itu lakukan kompilasi terhadap kedua file java di atas… Jangan lupa, sebaiknya file java diletakkan di tempat dimana anda mengatur classpath tadi, sehingga pada saat kompilasi, file class yang dihasilkan akan ditempatkan di tempat dimana file java anda berada…
Tibalah kita di langkah yang terakhir yaitu langkah keempat. Jika ada kesalahan dalam kompilasi, itu bisa disebabkan anda salah mengatur classpathnya, mungkin anda bisa mengulang dari langkah kedua.. Yang terakhir, anda cukup jalankan ini setelah proses kompilasi selesai..
java org.junit.runner.JUnitCore TestingMethod
Bisa lihat kan pesan kesalahannya apa? Yah, inilah bagian pertama dari testing yang sangat dasar sekali.., jika anda ingin tahu lebih, coba baca cookbook yang sudah disertakan dengan JUnit nya..
Sekarang anda tidak perlu method main lagi kan untuk pengetesan? Selamat mencoba dan tariklah manfaat di dalamnya! Jika hanya satu method mungkin kurang begitu terlihat, tapi coba 200 atau bahkan 1000, pasti anda butuh mekanisme testing seperti ini!

















hooooo
pake Annotation pantesan gak pake extend..
sip sip thanx buat infonya
hehehehhehe
: )
hehehe…,iya..,ok2!
kita kan harus saling share2 ilmu kk!!
oya, saya di jogja..!
YM please
halo wilbert, sori lama nih, nih filenya:
http://www.4shared.com/file/44138436/adf0772c/myapp.html?dirPwdVerified=11590877
^__________^
Makasih banyak, tulisannya sangat bermanfaat dalam penulisan T.A saya
soal Extreme Programming
Sama-sama kk… Semoga TA nya berhasil!!
saya agak aneh membacanya. apa ini metode penulisan terbaru ya?
kalo saya biasanya untuk nama class yg ditest diberi akhiran Test (Bermasalah => BermasalahTest), sedangkan untuk method yg ditest diberi awalan test (tambahBil => testTambahBil).
ayo part 2.
Lah mas, identifier kan bisa apa saja, untuk penamaan method dan kelas kan boleh apa saja asal jangan diawali dengan angka dan simbol2 selain dolar dan underscore..
Selebihnya itu hanya pattern aja.., yang biasa kita ikuti..
Misal method getter dan setter, sebenernya kan tidak harus ada get atau set nya…
Jadi ini bukan pattern penulisan terbaru, ini cuman identifier dan itu ga masalah…
mungkin style anda beda dg saya. bagi anda hal ini tidak masalah. menurut saya convention spt ini sangat membantu dan tidak merugikan sama sekali. apa ruginya kita menulis dg nama testTambahBil dan apa untungnya kita menulis dg nama testMethod? kan jelas kalu penulisannya pake testTambahBil yg di-test pasti method tambahBil.
oya, saya masih newbie dan mau tanya, apa pertimbangan pake annotation, kok class-nya ga di extend aja?
kalu ada 100 method, berarti ada 100 @test dunk? kalu udah di-extend kan tdk perlu @test
Yup..,terima kasih sarannya kk..
Pertimbangan saya begini :
Pertama karena annotation sudah mulai menjadi favorit pemrograman java, contoh nya di release Spring 2.5 yang sudah memindahkan beberapa konfigurasi yang semestinya tidak berada dalam deployment descriptor menjadi ke dalam annotation..
Trus kenapa tidak pakai extends saja?
Karena kalau kelas tersebut juga mengextends kelas lain gimana? ya kan..?
Hmm..,untuk apa membuat seratus method yang ada annotation @ Test?? satu saja kan sudah cukup untuk mengetest segala class dan method2nya..
semoga membantu…
maksudnya cukup satu method untuk ngetest 100 method, termasuk class-nya juga? hmmm… saya belum pernah pake style macam begini. biasanya saya selalu bikin test method untuk masing2 method secara terpisah.
Yuhu, kalau kk sudah nyaman dengan cara pemrogramannya,
ya tinggal pertahankan saja apa yang sudah kk lakukan..
dan mungkin bisa coba2 caraku kalau merasa ada alternatif lainnya…
Nice blog.
Iya, kebanyakan programmer harus dikenalkan dengan unit testing. Yang sangat penting dari awal sebab akan membantu sekali ketika program menjadi sangat kompleks dan sering berubah.
Regards,
Feris