Testing dengan Minitest
Penjelasan
Rails secara default sudah menyertakan Minitest sebagai testing framework, dengan struktur folder `test/models/`, `test/controllers/`, dsb yang otomatis dibuat saat kamu generate model/controller. Selain Minitest, komunitas Rails juga banyak memakai RSpec (gem terpisah) yang punya sintaks lebih deskriptif — konsep dasarnya sama: menulis assertion untuk memastikan kode berjalan sesuai harapan. Test model biasanya memvalidasi logic dan validasi Active Record, sementara test controller/request memastikan endpoint merespons dengan status dan data yang benar. Jalankan semua test dengan `rails test`.
Contoh Konsep
# test/models/catatan_test.rb
require "test_helper"
class CatatanTest < ActiveSupport::TestCase
test "tidak valid tanpa judul" do
catatan = Catatan.new(isi: "isi tanpa judul")
assert_not catatan.valid?
end
test "valid dengan judul dan isi" do
catatan = Catatan.new(judul: "Judul", isi: "Isi catatan")
assert catatan.valid?
end
end
Praktikum
Lengkapi test agar memastikan `Catatan` tanpa `judul` dianggap tidak valid.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Jalankan `rails test` sebelum setiap commit — kebiasaan ini membantu menangkap regresi lebih awal, apalagi kalau aplikasi sudah punya banyak model dan association yang saling terkait.