Test Data Builder untuk Membuat Data Pengujian

Test Data Builder

Saat kita melakukan pengujian, baik itu unit testing maupun integration testing kita akan selalu membutuhkan sebuah data untuk melakukan pengujian tersebut. Biasanya data yang dibutuhkan adalah berupa sebuah objek dari kelas domain model. Pada tutorial ini saya akan memperkenalkan sebuah kelas util yang digunakan untuk membuat sebuah objek data pengujian.

Mungkin pembaca akan bertanya kenapa perlu membuat kelas yang khusus digunakan untuk membuat sebuah objek domain kalau dengan proses instantiasi biasa dan kemudian menggunakan setter atau constructor untuk memberikan nilai pada property saja bisa. Dengan menggunakan builder ini proses pembentukan objek akan menjadi simpel dan informatif, setidaknya itu yang saya rasakan. Sekarang coba perhatikan jika kita akan menggunakan objek dari kelas Book pada pengujian kita, maka yang biasa terjadi adalah sebagai berikut

Kelas diatas adalah kelas pojo seperti biasa. Pada saat pengujian kita akan melakukan instantiasi seperti berikut

Memang tidak ada yang salah dengan cara diatas tetapi menulis unit testing adalah kegiatan yang cukup membosankan, jika ditambah dengan menulis kode seperti diatas akan tambah bosan. Kita membuat sebuah instance kemudian menulis objek diikuti memanggil method setter sebanyak setter yang dimiliki oleh kelas yang bersangkutan. Jika ada 10 method maka kita akan melakukannya sebanyak 10 kali dan menulisnya secara multiple row kebawah. Boros tempat 😀

Pendekatan lain adalah dengan menggunakan constructor seperti kode dibawah ini

Kali ini kode yang ditulis tidak boros baris seperti tadi menggunakan setter, justru malah sangat hemat tempat dengan hanya menggunakan satu baris alias one liner istilah kerennya. Akan tetapi, jeleknya dari kode diatas adalah tidak informatif, kita akan susah mengetahui apakah parameter kedua “Java Spring” adalah judul buku atau penulis buku. Untuk kode diatas tidak terlalu kelihatan pengaruhnya tetapi jika ada misal 10 property baru terasa kebingungannya.

Sekarang akan kita jajaki pendekatan ketiga menggunakan builder yang akan menutupi kekurangan pada cara setter yaitu membosankan dan kekurangan pada cara constructor yaitu tidak informatif. Berikut ini adalah kelas BookBuilder yang saya tulis

Dengan menggunakan cara diatas maka untuk membuat sebuah objek dari kelas Buku dilakukan penulisan kode sebagai berikut ini

Atau dengan penulisan seperti dibawah ini

Kode diatas terlihat simpel dan informatif bila dibandingkan dengan 2 pendekatan sebelumnya

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

Leave a Reply

Your email address will not be published. Required fields are marked *