(Week 7) Menerapkan Test Driven Development
Setelah belajar mengenai fungsi-fungsi dari firebase, semangat untuk langsung mengimplementasi kode meningkat. Namun saya diperkenalkan dengan istilah TDD, singkatan dari Test Driven Development, sebuah istilah asing. Setelah saya mengerti apa itu Test Driven Development, sempat ada keraguan untuk menerapkan TDD karena sudah merasa terbiasa dengan cara kerja yang sebelum-sebelumnya karena dasar pemikiran dari TDD berbeda dengan apa yang biasa saya terapkan.
Alur kerja dari Test Driven Development yang saya pahami adalah sebagai berikut:
- Membuat test sebelum implementasi kode, termasuk kemungkinan input dan outputnya.
- Jalankan test nya dengan tujuan menggagalkan test tersebut karena belum ada implementasi kode.
- Mulai membuat kode untuk berusaha meloloskan test yang baru dibuat.
- Jalankan test kembali dan cek hasil test nya. Kalau belum pass, maka perlu diperbaiki sampai memenuhi ekspektasi dari test.
- Ulangi poin 1 sampai 4 untuk fitur selanjutnya.
Perlu pembiasaan, dan tentunya butuh waktu untuk mempelajari lebih lanjut. Satu pertanyaan yang muncul saat ingin mulai menerapkan Test Driven Development adalah ‘Apakah yang akan saya tes terlebih dahulu?’
Setelah membaca dari berbagai sumber tentang penerapan TDD pada React-Native, saya mulai mendapat gambaran tentang komponen apa yang akan di test. Pembuatan test disini mirip dengan menulis ‘readme’ dari kode yang sebenarnya akan ditulis. Contohnya
describe(‘interaction’, () => {
describe(‘clicking the button’, ()=> {
it(‘should call the onClick callback’)
})
})
Potongan kode test di atas seperti bercerita akan seperti apa kode yang nanti diimplementasi.
Belajar mengenai TDD dan belajar menuliskan test seperti membuat saya menjadi lebih detail tentang apa yang ingin saya capai melalui kode yang akan ditulis nanti. Manfaat lain yang diperoleh dengan menerapkan TDD adalah bug dapat diminimalisir karena output dari kode harus sesuai definisi awal yang sudah ada pada test nya.
Terima kasih telah membaca blog saya, sampai jumpa lagi.