Integration Testing Menggunakan NUnit

Posted by Kamarudin • 2 minute read • Comments

Dasar-dasar unit testing sudah kita pelajari, dilanjutkan dengan coverage testing untuk mengecek tingkat keseriusan programmer dalam membuat unit testing. Semakin sedikit unit testing yang dibuat atau asal-asalan pada saat membuat unit testing bakalan dijamin coverage testingnya akan gagal.

Pada postingan kali ini kita akan membahas tentang integration testing yaitu tes yang dilakukan secara berkelompok. Sebagai contoh, dalam pengembangan aplikasi bisnis hampir bisa dipastikan 100% akan menggunakan database. Sehingga perlu kita tes apakah kode program yang kita buat dapat berinteraksi dengan database sesuai harapan atau tidak. Jadi kita tidak perlu lagi melakukan pengetesan secara serius di level UI (console, winform atau halaman web) karena sudah di lakukan pengetesan melalui integration testing.

Contoh kita punya dua method CRUD seperti berikut :

Kemudian kita buatkan unit testingnya seperti ini :

Unit testing pertama yang akan kita tes adalah method GetByID, method ini mempunyai satu parameter yaitu nik yang nilainya kita isi dengan 12345. Setelah pemanggilan method GetByID (baris 30) seharusnya objek pegawai akan terisi dengan data pegawai dengan nik 12345. Setelah itu kita membuat skenario pengetesan seperti berikut :

  1. Objek pegawai tidak boleh null (baris 32)
  2. Nik pegawai harus sama dengan 12345 (baris 33)
  3. Nama pegawai harus sama dengan Janoe Hendarto, S.Kom (baris 34)
  4. Untuk alamat dan kota nilainya juga harus sama dengan gambar di atas (baris 35 – 36)

Setelah itu kita jalankan unit testingnya menggunakan NUnit GUI Runner, dan hasilnya adalah …

Unit testingnya ternyata gagal karena kondisi yang sudah kita tentukan di baris 32 bahwa objek pegawainya tidak boleh null tidak terpenuhi. Ada dua kemungkinan penyebab kegagalan ini yaitu :

  1. Kita salah mengeset nilai niknya, jadi kemungkinan niknya bukan 12345 atau ..
  2. Datanya memang belum ada

Jadi kita akan cek dulu kemungkinan yang nomor 2 yaitu dengan melihat isi tabel Pegawai

Ternyata memang benar datanya yang belum ada he he :grin:, berarti harus kita tambahkan dulu data pegawai dengan nik 12345.

Setelah itu kita cek lagi unit testingnya.

Ternyata masih gagal tapi dengan kondisi yang berbeda, dari gambar di atas terlihat nilai yang kita harapkan adalah Janoe Hendarto, S.Kom sedangkan yang ada di database adalah Janoe Hendarto, M.Kom beda di gelarnya yaitu S.Kom dan M.Kom, berarti kegagalan kedua ini kita yang salah mengeset kondisi unit testingnya. Solusinya kita tinggal ganti S.Kom menjadi M.Kom.

Kemudian kita cek lagi unit testingnya

Akhirnya tes pertama berhasil :blush:

Gimana ? Lebih cepat dan gampang bukan dari pada melakukan pengetesan dengan cara jadul via console, winform, atau halaman web he he just kidding :grin:

Berikutnya kita akan tes method yang kedua yaitu GetAll, kode pengetesannya seperti ini :

Method GetAll di atas akan mengembalikan kumpulan/collection dari objek pegawai. Setelah itu kita membuat skenario pengetesan seperti berikut :

  1. Jumlah pegawainya ada 3 orang/record (baris 43)
  2. Di baris 46 kita membuat objek pegawai kemudian mengeset datanya dengan data pegawai terakhir (index = 2)
  3. Mulai baris 48 – 52, kita melakukan pengetesan seperti pengetesan method GetByID

Untuk keperluan tes ini kita tambahkan lagi dua record data pegawai, sehingga totalnya adalah 3 record sesuai dengan skenario nomor 1 di atas.

Setelah itu kita jalankan unit testingnya.

Karena kondisi pengetesan (unit testing) sudah sesuai dengan data riil database, pengetesanpun langsung berhasil.

Nah sampai di sini sudah dua method CRUD yang selesai kita tes, dan untuk contoh pengetesan method CRUD lainnya seperti Save, Update dan Delete kodenya lebih kurang seperti berikut:

Selamat MENCOBA :blush:

Comments