Anandia M Y pada 21 April 2018

jadi saya sedang belajar Testing Aplikasi, banyak tutorial2 tentang testing yang melakukan testingnya di Controller dan juga di Model

yang saya tanyakan adalah, ketika kita testing di Controller kan otomatis controller tersebut sudah berkomunikasi dengan si Model, brarti testing di Model sudah tidak perlu lagi donk?

Mohon pencerahannya....

Agung Setiawan pada 21 April 2018

Sebagai informasi, seinget saya RSpec yang terbaru sudah tidak ada atau akan meniadakan controller test dan sebagai gantinya adalah request test https://everydayrails.com/2016/08/29/replace-rspec-controller-tests.html

Kenapa masih perlu model?

Pertama, belum tentu kita ingin menjalankan test controller hanya untuk mengetes model. Kan jadi repot, padahal kita hanya ingin mengetes model saja tetapi mesti menjalankan test yang menguji controller. Nah makanya kita buat test khusus untuk model.

Yang kedua, mestinya kalau kita ngetes controller berarti test-nya diisolasi, artinya yang kita tes adalah benar-benar controller, bukan sekalian ngetes modelnya. Soal isolasi ini coba Mas Anandia baca referensi soal mock dan stub di RSpec (kalau menggunakan RSpec). Di test framework lain istilahnya sama kok jadi ambil aja konsepnya dulu.

Anandia M Y pada 21 April 2018

oh ok saya baca2 dulu mock dan stub di rspec

Abdul Rohim pada 23 April 2018

kok saya baru tau ya klo controller dan model harus di test dulu, untuk apa ya?

Agung Setiawan pada 23 April 2018

Automated test itu dibuat supaya kalau ada perubahan di kode kita, kita jadi tahu apakah perubahan kode merusak / membuat error kode sebelumnya.

Kalau ga ada automated test, kita mesti ngetes satu-satu manual. Kalau sedikit masih mungkin. Kalau sudah gede aplikasinya dalam artian banyak fitur akan sangat merepotkan ngetes manual satu-satu.

Kalau sudah ada automated test-nya tinggal kita jalankan dan dalam waktu yang relatif singkat bisa tahu apakah tes masih lolos atau tidak. Lolos berarti semua baik-baik saja. Ga lolos berarti ada kode yang buat error dan perlu diperbaiki.

Konsep dasar automated test di Ruby pernah saya bahas di seri Unit Testing Menggunakan RSpec
https://www.idrails.com/series/unit-testing-menggunakan-rspec