TDD Laravel Studi Kasus : Kalkulator

Haidar Afif Maulana
5 min readSep 2, 2017

--

sebelum nya saya sudah menjelaskan mengenai testing dengan phpunit di laravel. untuk yang belum baca silahkan ini link nya :

pada artikel kali ini kita akan langsung memprakterkan phpunit laravel dengan studi kasus aplikasi kalkulator sederhana.

Cara terbaik untuk menjadi developer terhebat adalah dengan banyak praktek. semakin banyak kita menulis kode semakin ahli kita dalam koding.

pertama, silahkan install laravel. untuk yang belum tahu bagaimana menginstall laravel bisa baca artikel saya tentang instalasi laravel.

saya asumsikan kita sudah menginstall laravel.

pada studi kasus kali ini saya menggunakan laravel versi 5.4

oke langsung kita buka projek laravel dengan text editor, saya menggunakan sublime text.

Direktori Kalkulator Laravel

karena menggunakan teknik pembuatan software test driven development (TDD). maka urutan langkah pembuatan software nya adalah sebagai berikut:

  • buat test case untuk melakukan unit test , tentukan assert nya ,yaitu hasil yang di inginkan dari testing test case tersebut.
  • jalankan test nya , hasil yang di peroleh seharusnya fail (gagal) , artinya testing kita benar. Loh kok gitu ya ? bukannya kalau pass (lolos) itu yang benar?. karena kita belum sama sekali menulis kan kode yang mem pass kan test, maka tentu testing nya harus nya fail. justru kalau lolos kan aneh? ini biasa di sebut tahapan RED.
  • kita buat koding , lalu kita test, sampai kodingan kita l0los test. ini di sebut tahapan GREEN.
  • tidak berhenti sampai lolos test, kita harus kembali ke kodingan nya lalu lakukan refactor. perhatikan dengan seksama koding kita mungkin sekiranya ada yang bisa di persingkat atau ada kode yang tidak di perlukan kita hapus saja.
  • Selesai. lakukan lagi proses mulai urutan awal sampai akhir.

oke , kita langsung saja ke kodingan nya .

buka terminal lalu arahkan ke direktori projek laravel kalkulator .

jalankan command untuk membuat unit test case baru dengan nama PerhitunganTest

php artisan make:test PerhitunganTest --unit

hapus method testExample yang ada di dalam class PerhitunganTest di atas. karena itu hanya contoh.

dan hapus dua file example test yang ada di folder Feature dan Unit.

oke pertama kita membuat fitur perhitungan pertambahan. kita buat test nya dengan method testPertambahan().

Test Pertambahan

lalu kita buat instance object dari class PerhitunganController. tapi kan kita belum membuat controller tersebut, kenapa kita panggil controller itu di sana ? itu memang sengaja di lakukan agar test nya fail.

$perhitungan = new PerhitunganController();

jalankan phpunit

vendor/bin/phpunit

kita panggil method pertambahan yang nantinya ada di PerhitunganController. passing 2 parameter ke method tersebut, dengan nilai angka 2. maksudnya kita akan melakukan perhitungan pertambahan 2 di tambah 2.

lalu kita buat assertion untuk melakukan pengecekan apakah hasil dari perhitungan 2 tambah 2 hasil nya sudah benar. yaitu hasil nya seharusnya bernilai 4.

Assert Equals

lalu kita jalankan lagi phpunit, sampai tahap ini seharusnya unit testing kita masih fail. jika fail maka proses yang kita lakukan sudah benar.

oke, kita sudah menyelesaikan tahapan RED.

lanjut kita akan menuliskan kodingan nya agar testing yang sudah kita buat berhasil lolos. ini di sebut tahapan GREEN.

buat controller dengan nama PerhitunganController dengan command berikut:

php artisan make:controller PerhitunganController

buat method pertambahan() beserta logic pertambahan nya .

public function pertambahan($angka_1,$angka_2){     $hasil_perhitungan = $angka_1 - $angka_2;     return $hasil_perhitungan;
}

kembali ke file PerhitunganTest.php , jangan lupa kita use PerhitunganController ke PerhitunganTest.php

jalan kan phpunit, hasil yang kita harapkan yaitu testing nya lolos.

oops, ternyata test nya failure (gagal). kita cek lagi kode kita mungkin ada yang salah.

phpunit nya bilang Failed asserting that 0 matches expected 4. artinya seharusnya hasil perhitungan yang di hasilkan 4, tapi malah 0 yang di hasilkan.

oke , ternyata di situ letak kesalahan kode nya. di situ malah melakukan pengurangan , seharusnya menggunakan operator plus ( + ).

jalankan lagi phpunit.

oke alhamdulillah, testing nya berjalan lancar dan lolos pengecekan. kita sudah menyelesaikan tahap GREEN.

tahap selanjut nya REFACTOR. karena kode yang saya contohkan tidak terlalu kompleks mungkin hanya sedikit saja yang bisa di refactor. kembali ke kode kita dan lihat apa yang mungkin di improve.

mungkin kita bisa lakukan seperti di atas, daripada memasukkan nya terlebih dahulu ke variable mending kita lansung saja membuat operasi nya di return, dengan ini kode kita jadi lebih sedikit.

jalankan lagi phpunit :

alhamdulillah lolos test.

sampai tahap ini kita sudah selesai satu siklus pembuat software dengan test drive development.

dalam praktikal di kenyataannya tentu tidak sesimpel contoh di atas. tapi di sini saya hanya memberikan basic dan gambaran bagaimana langkah melakukan tdd di laravel dengan phpunit.

semoga ilmu yang sedikit ini bermanfaat.

Happy Coding :)

jika ada pertanyaan, saran dan kritik silahkan berikan response di kolom response di bawah atau email ke haidarafifmaulana@gmail.com .

Response anda sangat saya harapkan. jangan lupa claps nya hehe :)

--

--