Mengapa Melakukan Pengujian
Temukan bug sebelum pengguna menemukannya.
Mengapa Melakukan Pengujian adalah pelajaran Lua Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Lua Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Lua Academy mencakup 4 pelajaran total.
Mengapa Melakukan Pengujian
Pengujian otomatis adalah kode yang memeriksa kode Anda. Alih-alih menjalankan program secara manual dan mengamati outputnya, Anda menulis penegasan kecil yang diverifikasi oleh pelari pengujian.
Untuk Lua, kerangka kerja yang paling populer adalah busted. Kerangka ini memberi Anda sintaks yang bersih untuk mendeskripsikan perilaku dan melaporkan hasil lulus atau gagal.
Dampak Tanpa Pengujian
Tanpa pengujian, setiap perubahan menjadi taruhan. Anda memperbaiki satu kesalahan lalu diam-diam merusak kesalahan lainnya. Seiring pertumbuhan basis kode, pemeriksaan manual menjadi mustahil dilakukan secara menyeluruh.
Pengujian berfungsi sebagai jaring pengaman. Saat melakukan refaktor, rangkaian pengujian yang seluruhnya berhasil memberi tahu Anda bahwa perilakunya tetap terjaga.
Berkas Pengujian Pertama
Berkas pengujian busted biasanya berada di folder spec/ dan berakhiran _spec.lua. Di dalamnya, Anda mendeskripsikan hal yang sedang diuji.
Berikut contoh paling kecil yang tetap berguna. Contoh ini memeriksa apakah aritmetika sederhana berfungsi.
describe("math", function()
it("adds numbers", function()
assert.are.equal(4, 2 + 2)
end)
end)Menjalankan busted
Anda memasang busted dengan LuaRocks: luarocks install busted. Kemudian jalankan perintah busted di akar proyek Anda.
Perintah ini menemukan berkas yang berakhiran _spec.lua, menjalankan setiap blok it, dan mencetak titik untuk setiap keberhasilan serta F untuk setiap kegagalan.
Menguji Modul Anda Sendiri
Pengujian nyata mengimpor modul yang diuji dengan require. Anda memanggil fungsinya dan menegaskan hasilnya.
Misalkan Anda memiliki modul calculator.lua yang mengembalikan tabel berisi fungsi.
local calc = require("calculator")
describe("calculator", function()
it("multiplies", function()
assert.are.equal(6, calc.mul(2, 3))
end)
end)Pengujian sebagai Dokumentasi
Pengujian yang ditulis dengan baik juga berfungsi sebagai dokumentasi yang terus hidup. Pengembang baru dapat membaca berkas spesifikasi dan memahami dengan tepat bagaimana sebuah fungsi seharusnya berperilaku.
Karena deskripsinya berupa teks biasa, deskripsi tersebut terbaca hampir seperti kalimat: "kalkulator mengalikan".
describe("string utils", function()
it("trims whitespace", function()
assert.are.equal("hi", utils.trim(" hi "))
end)
end)Siklus Umpan Balik Cepat
Kekuatan nyata pengujian terletak pada kecepatannya. Menjalankan seluruh rangkaian pengujian hanya membutuhkan beberapa detik, jauh lebih cepat daripada mengeklik aplikasi secara manual.
Anda bahkan dapat menjalankan busted dalam mode pemantauan atau menargetkan satu berkas untuk menjaga umpan balik tetap cepat selama pengembangan.
-- run only one file
-- busted spec/calculator_spec.luaMenangkap Regresi
Regresi adalah kesalahan yang muncul kembali dalam kode yang sebelumnya berfungsi. Saat menemukan kesalahan, praktik terbaiknya adalah menulis pengujian yang terlebih dahulu mereproduksinya.
Setelah pengujian gagal, perbaiki kode hingga pengujian tersebut berhasil. Kini pengujian itu melindungi Anda dari kembalinya kesalahan tersebut.
it("handles empty input", function()
assert.are.equal(0, calc.sum({}))
end)Ciri Pengujian yang Baik
Pengujian yang baik cepat, terisolasi, dan deterministik. Pengujian tersebut tidak boleh bergantung pada jaringan, waktu, atau nilai acak, kecuali semua itu dikendalikan.
Setiap pengujian seharusnya memeriksa satu perilaku yang jelas. Jika pengujian gagal, namanya harus memberi tahu apa yang rusak tanpa perlu membaca isinya.
Piramida Pengujian
Piramida pengujian menyarankan banyak pengujian unit kecil, lebih sedikit pengujian integrasi, dan sangat sedikit pengujian menyeluruh dari awal hingga akhir. Pengujian unit murah dan cepat, jadi utamakanlah.
busted terutama merupakan alat pengujian unit, meskipun Anda juga dapat menggunakannya untuk pengujian integrasi.
Kepercayaan Diri untuk Berubah
Manfaat terdalam pengujian adalah kepercayaan diri. Dengan rangkaian pengujian yang dapat dipercaya, Anda dapat melakukan refaktor dengan berani, meningkatkan dependensi, dan merilis lebih cepat.
Kursus ini mengajarkan busted dari dasar: struktur, penegasan, dan objek tiruan pengujian seperti tiruan dan pengintai.
describe("feature", function()
it("still works after refactor", function()
assert.is_true(feature.enabled())
end)
end)Pemeriksaan Singkat
Uji pemahaman Anda tentang alasan kita menulis pengujian.
Ringkasan
Pengujian adalah kode yang memverifikasi kode. busted merupakan kerangka kerja utama Lua, yang menemukan berkas _spec.lua dan melaporkan keberhasilan atau kegagalan.
Pengujian yang baik cepat, terisolasi, dan deterministik. Pengujian tersebut menangkap regresi, berfungsi sebagai dokumentasi, dan memberi Anda kepercayaan diri untuk mengubah kode dengan bebas.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengapa Melakukan Pengujian” gratis?
Ya — teks lengkap “Mengapa Melakukan Pengujian” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Lua Academy, upgrade ke CoddyKit PRO. Kursus Lua Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mengapa Melakukan Pengujian”?
Temukan bug sebelum pengguna menemukannya. Kamu berlatih Lua Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Lua Academy?
Tidak diperlukan pengalaman sebelumnya. Lua Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Mengapa Melakukan Pengujian” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Lua Academy ini?
Ya. Setiap pelajaran Lua Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mengapa Melakukan Pengujian
- Blok describe dan it
- Asersi
- Mock dan Spy