0Pricing
Lua Academy · Pelajaran

Blok describe dan it

Susun rangkaian pengujian.

Blok describe dan it adalah pelajaran Lua Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.

Struktur Spesifikasi

busted mengatur pengujian dengan dua fungsi inti: describe dan it. Blok describe mengelompokkan pengujian terkait, sedangkan setiap blok it merupakan satu kasus pengujian.

Struktur ini berasal dari pengembangan berbasis perilaku dan terbaca seperti bahasa biasa.

describe("Stack", function()
  it("starts empty", function()
    assert.are.equal(0, Stack.new():size())
  end)
end)

Blok describe

describe menerima teks nama dan sebuah fungsi. Nama tersebut harus mengidentifikasi unit atau fitur yang diuji, seperti modul atau kelas.

Segala sesuatu di dalam fungsi tersebut termasuk dalam kelompok itu. Nama tersebut muncul di output pengujian untuk mengatur hasil.

describe("calculator", function()
  -- tests live here
end)

Blok it

Setiap blok it mendeskripsikan satu perilaku spesifik. Teks tersebut harus melengkapi kalimat yang dimulai oleh describe.

Jika dibaca bersama, "kalkulator" ditambah "menjumlahkan dua angka" membentuk spesifikasi maksud yang jelas.

describe("calculator", function()
  it("adds two numbers", function()
    assert.are.equal(5, calc.add(2, 3))
  end)
end)

Menyarangkan Blok describe

Anda dapat menyarangkan blok describe untuk menyatakan konteks. Blok bagian dalam dapat mendeskripsikan metode tertentu atau kondisi khusus.

Penyarangan menjaga kasus-kasus terkait tetap bersama dan menghasilkan output yang mudah dibaca serta memiliki indentasi.

describe("List", function()
  describe("push", function()
    it("adds an item", function()
      assert.are.equal(1, list:push("a"):size())
    end)
  end)
end)

Penyiapan before_each

before_each menjalankan sebuah fungsi sebelum setiap it dalam bloknya. Gunakan ini untuk membuat data pengujian baru agar pengujian tidak berbagi keadaan.

Dengan begitu, setiap pengujian tetap terisolasi. Perubahan dalam satu pengujian tidak dapat merembet ke pengujian berikutnya.

describe("Stack", function()
  local s
  before_each(function()
    s = Stack.new()
  end)
  it("pushes", function()
    s:push(1)
    assert.are.equal(1, s:size())
  end)
end)

Pembongkaran after_each

after_each dijalankan setelah setiap pengujian. Gunakan ini untuk membersihkan sumber daya seperti berkas sementara, koneksi open, atau keadaan global.

Memasangkan penyiapan dan pembongkaran memastikan lingkungan diatur ulang di antara pengujian.

after_each(function()
  os.remove("temp.db")
end)

Penyiapan dan Pembongkaran

busted juga menyediakan setup dan teardown, yang dijalankan sekali untuk setiap blok describe, bukan sekali untuk setiap pengujian.

Gunakan ini untuk pekerjaan mahal yang hanya dilakukan sekali, seperti membuka koneksi bersama, ketika penyiapan per pengujian akan boros.

describe("db", function()
  setup(function()
    db = connect()
  end)
  teardown(function()
    db:close()
  end)
end)

Pengujian Tertunda

Terkadang Anda ingin mencatat pengujian yang belum ditulis. Panggil pending dengan deskripsi, atau tulis blok it tanpa fungsi.

busted melaporkan pengujian ini sebagai tertunda, bukan berhasil atau gagal, sehingga mengingatkan Anda untuk menyelesaikannya.

it("handles unicode", function()
  pending("not implemented yet")
end)

Memusatkan dan Mengecualikan

Saat melakukan debug, Anda dapat memusatkan perhatian pada sebagian pengujian. Memberi tag dengan --tags pada baris perintah, atau menggunakan pembantu busted, memungkinkan Anda menjalankan hanya hal yang penting.

Dengan begitu, Anda tidak perlu menjalankan seluruh rangkaian saat mengulangi proses pada satu bagian yang gagal.

-- run only tests tagged 'fast'
-- busted --tags=fast

Konvensi Penamaan

Nama yang baik membuat kegagalan dapat dipahami tanpa penjelasan tambahan. Mulailah describe dengan subjek dan it dengan kata kerja yang menggambarkan perilaku.

Hindari nama yang samar seperti "berfungsi" atau "pengujian1". Pengujian yang gagal seharusnya terbaca seperti laporan kesalahan yang dapat Anda tindak lanjuti.

describe("parser", function()
  it("rejects malformed input", function()
    assert.has_error(function() parser.parse("{") end)
  end)
end)

Merangkainya

Spesifikasi lengkap menggabungkan kelompok describe, penyiapan before_each, dan kasus it yang berfokus. Kerangka ini dapat berkembang dari satu pengujian menjadi ratusan.

Jaga blok tetap kecil dan fokuskan setiap it pada satu perilaku agar output sejelas mungkin.

describe("Account", function()
  local acc
  before_each(function() acc = Account.new(100) end)
  it("withdraws funds", function()
    acc:withdraw(40)
    assert.are.equal(60, acc.balance)
  end)
end)

Pemeriksaan Singkat

Uji pemahaman Anda tentang struktur blok busted.

Ringkasan

describe mengelompokkan pengujian terkait dan it mendefinisikan satu kasus, sehingga terbaca seperti spesifikasi. Sarangkan blok describe untuk menyatakan konteks.

Gunakan before_each dan after_each untuk isolasi per pengujian, serta setup dan teardown untuk pekerjaan sekali per blok. Tandai pekerjaan yang belum selesai dengan pending.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Blok describe dan it” gratis?

Ya — teks lengkap “Blok describe dan it” 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 “Blok describe dan it”?

Susun rangkaian pengujian. 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 2 dari 4.

Berapa lama pelajaran “Blok describe dan it” 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

  1. Mengapa Melakukan Pengujian
  2. Blok describe dan it
  3. Asersi
  4. Mock dan Spy
← Kembali ke Lua Academy