Fake it if your out of direction
Fake it if you don’t belong
Fake it if you feel like infection
Whoa, your such a fucking hypocrite
– Fake It, Seether

Bertemu lagi di sesi tutorial linuxgembel temen temen sekalian. Untuk kali ini kita akan mencoba melakukan unit testing dengan Junit.

Sebelum  mulai menstarter IDE java favorit temen temen, ada baiknya kita mengerti sedikit mengenai unit testing. Unit testing tu apaan seh?

Berikut menurut wikipedia.

in computer programming, unit testing is a procedure used to validate that individual units of source code are working properly. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual program, function, procedure, etc., while in object-oriented programming, the smallest unit is a method; which may belong to a base/super class, abstract class or derived/child class.

Klo pendapat saya pribadi, unit testing dapat didefinisikan dari dua kata penyusunnya : unit dan testing (semua juga tau mbel!!!).  Maksud saya  adalah, unit testing adalah tahapan testing aplikasi paling awal yang dapat dilakukan. Dengan cara melakukan testing terhadap entitas paling kecil dari proses bisnis aplikasi. Entitas paling kecil disini adalah method.

Dalam software development lifecycle terdapat beberapa tahapan. Ada perencanaan, development , coding, testing , implementasi dll. Untuk memastikan kebenaran dari algoritma atau kode program yang telah dibuat diperlukan adanya proses testing. Unit testing adalah proses testing dengan scope yang paling kecil. Mohon klo salah dibenarkan, gembel banyak salahnya :).

Junit adalah salah satu framework untuk melakukan testing aplikasi java. Junit dapat didonlot dalam bentuk jar di link di bawah ini.

http://sourceforge.net/project/showfiles.php?group_id=15278&package_id=12472

Setelah temen temen berhasil mendapatkan file jarnya, tutorial ini pun dapat kita mulai. Lets fired up our IDE folks!!! :).

Untuk melakukan testing, kita perlu aplikasi java yang perlu ditesting (iyalah, masa perlu peralatan dapur!!!). Untuk tutorial ini kita cukup menyiapkan satu class java dengan beberapa method saja.

Buat simple1.java

 Simple1 adalah class java yang akan kita pakai untuk unit testing. Class ini sesuai dengan namanya akan kita buat sangat simple. Berikut ini adalah source codenya.


<p align="left"> package kiki.learn.junit;

public class simple1 {
    private String pesan;
    private int angka;

    public int getAngka() {
        return angka;
    }
    public void setAngka(int angka) {
        this.angka = angka;
    }
    public void setPesan(String pesan) {
        this.pesan = pesan;
    }
    public String getPesan() {
        return pesan;
    }
    public String tentukanGenapGanjil(int angka){

        this.angka = angka;

        if(this.angka % 2 == 0){
            setPesan("genap");
        }else{
        setPesan("ganjil");
        }

        return this.pesan;
    }

}

<p align="left">

Class ini cuman terdiri dari dua variabel pesan dan angka beserta method getter dan setternya. Ditambah satu method untuk menentukan genap dan ganjil.

Buat test class

Setelah itu kita buat class untuk melakukan unit testing. Jangan lupa untuk memasukkan file jar dari junit kedalam folder project yang temen temen pake.


package kiki.learn.junit;

import junit.framework.TestCase;

public class testSimple1 extends TestCase {

    simple1 sim = new simple1();

    public testSimple1(String name) {
     super(name);
     }

    public void testGanjilGenap(){
        int ganjil = 1;    
        assertEquals("test ganjil genap", "ganjil", sim.tentukanGenapGanjil(ganjil));
    }

    public void testGetAngka(){

        sim.setAngka(5);
        assertEquals("test get", 5, sim.getAngka());
    }

    public static void main(String[] args) {

        junit.textui.TestRunner.run(testSimple1.class);

    }

}

Sekarang kita analisis source code diatas.  Untuk membuat class unit test, kita buat satu class yang meng inherit class TestCase dari framework Junit. Lalu class tersebut harus melakukan Overriding dari constructor super classnya.

Dua method yang terdapat pada class testSimple1 diatas, adalah kasus yang akan kita testing.

1. testGanjilGenap()

Pada method testGanjilGenap(), yang dites adalah method tentukanGanjilGenap() dari class simple1. Diberikan sebuah integer ganjil 1, kita testing apakah method tentukanGanjilGenap() mengembalikan nilai yang semestinya (yaitu ganjil). Method testing yang dipakai adalah assertEquals(). Ada 3 parameter yang dimasukkan yaitu :

  • Pesan testing
  • Nilai yang diharapkand
  • Nilai hasil eksekusi

Nilai yang diharapkan akan keluar disini adalah “ganjil” , hasil dari eksekusi method sim.tentukanGenapGanjil(ganjil) dimana variabel ganjil diberi nilai 1 .
2. testGetAngka()

Pada method ini yang dites adalah getter dari variabel angka pada class simple 1. Diberikan nilai 5 , dicek apakah getter mengeluarkan nilai yang sama.

Lalu langkah terakhir adalah membuat main method. Untuk melakukan testing , kita panggil method   junit.textui.TestRunner.run(); dengan parameter file.class dari testSimple1.

Jika output program seperti dibawah ini.

 Time: 0

OK (2 tests)

maka proses testing berhasil dilewati oleh class simple1 dengan sukses karena method yang digunakan pada test case sudah mengembalikan nilai sesuai dengan harapan.

Demikian unit testing sederhana yang dapat saua contohkan. Semoga bermanfaat temen temen. Untuk referensi lebih lanjut , bisa mendonlot ebook Junit di flazx.com.

Happy coding friends. Dont forget to unit test it.

: )

Posted by Kiki Ahmadi

Professional in Telco and Digital industry in Indonesia | Currently pursuing master's degree in Innovation Management and Entrepreneurship in University of Manchester

10 Comments

  1. seph… pernah pake jipe di linux nggak? kayaknya ada fitur untuk unit testing… 🙂

    Reply

  2. Wew.. bikin tutorial tho.. sip bagus!! ridu dulu pas semester 1 sempet belajar slackware.. namun karena ridu kul jur akuntansi, jadinya gak diterusin, keteter sama kuliah akuntansi!

    Reply

  3. Hohohoho …. bagus2 … terusin mbel tutorial nya …. mbel klo bat testing struktur data di java ada ga?

    Reply

  4. Hmm,ak ga pernah extends dari TestCase tuh.., coba kk liat2 di blog ku, tentang JUnit juga…

    Reply

  5. btw,tanya oot lagi neh, membuat code kita di wordpress supaya bisa bagus n ada warnanya gt gmn ya?

    coz punya ku ga kaya gitu… hehehe…
    Coba deh liat!! jadi malu

    Reply

  6. thx tutorialnya, mantap uey 😉

    Reply

  7. aku mau tanya, ada gak buku yang bahas tentang JUnit yang lebih lengkapnya dan mudah dipahami?

    Reply

    1. makasih 🙂

      Reply

      1. eh salah nge klik,,heheh mksudnya makasih buat tutorialnya ya mas mbel 😀

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s