0Pricing
Ruby Academy · Pelajaran

Pengujian dan Pemberian Versi

Kualitas dan semver.

Pengujian dan Pemberian Versi adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 3 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 Ruby Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Ruby Academy mencakup 4 pelajaran total.

Mengapa Menguji Paket?

Karena paket digunakan oleh banyak proyek, satu kesalahan dapat berdampak pada semua orang. Pengujian otomatis memungkinkan Anda mengubah kode dengan yakin dan membuktikan bahwa paket tetap berfungsi.

  • Pengujian mendokumentasikan perilaku yang diharapkan.
  • Pengujian menemukan regresi sebelum rilis.
  • Pengguna yang serius mengharuskan pengujian sebelum menggunakan paket.

Memilih Kerangka Kerja

Dua pilihan yang populer adalah Minitest (disertakan bersama Ruby dan ringan) serta RSpec (memiliki DSL yang kaya dan sangat umum). Keduanya baik; pilih salah satu dan tambahkan sebagai dependensi pengembangan dalam berkas spesifikasi paket.

Contoh Minitest

Pengujian Minitest berupa kelas biasa dengan metode pernyataan. Berikut contoh mandiri yang menjalankan logika paket Anda dan memeriksa hasilnya.

require "minitest/autorun"

def greet(name)
  "Hi, " + name
end

class GreetTest < Minitest::Test
  def test_greet
    assert_equal "Hi, Sam", greet("Sam")
  end
end

Pernyataan Umum

Pernyataan Minitest yang berguna:

  • assert_equal expected, actual
  • assert obj dan refute obj
  • assert_nil value
  • assert_raises(Error) { ... }

Setiap pengujian sebaiknya memeriksa satu perilaku yang jelas.

require "minitest/autorun"

class MathTest < Minitest::Test
  def test_addition
    assert_equal 4, 2 + 2
  end

  def test_truth
    refute_nil 5
  end
end

Menjalankan dan Mengotomatiskan Pengujian

Biasanya Anda menambahkan tugas Rake agar rake test menjalankan seluruh rangkaian pengujian. Integrasi berkelanjutan kemudian menjalankan tugas yang sama setiap kali perubahan dikirim, pada beberapa versi Ruby, untuk menemukan masalah lebih awal.

Apa Itu Pemberian Versi Semantik?

Pemberian Versi Semantik (semver) memberi makna pada nomor versi MAJOR.MINOR.PATCH:

  • MAJOR: perubahan antarmuka yang tidak kompatibel.
  • MINOR: fitur baru yang tetap kompatibel dengan versi sebelumnya.
  • PATCH: perbaikan kesalahan yang tetap kompatibel dengan versi sebelumnya.

Pengguna mengandalkan aturan ini untuk melakukan peningkatan dengan aman.

Membaca Versi

Untuk 2.4.1: bagian utama adalah 2, bagian minor adalah 4, dan bagian perbaikan adalah 1. Membagi string tersebut akan menampilkan setiap bagiannya.

version = "2.4.1"
major, minor, patch = version.split(".")
puts "Major: " + major
puts "Minor: " + minor
puts "Patch: " + patch

Kapan Menaikkan Setiap Bagian

Aturan keputusan:

  • Memperbaiki kesalahan tanpa mengubah antarmuka? Naikkan bagian perbaikan.
  • Menambahkan fitur dan kode lama tetap berfungsi? Naikkan bagian minor, lalu atur ulang bagian perbaikan menjadi 0.
  • Menghapus atau mengubah perilaku yang sudah ada? Naikkan bagian utama, lalu atur ulang bagian minor dan perbaikan menjadi 0.
def bump_minor(version)
  major, minor, _patch = version.split(".").map(&:to_i)
  major.to_s + "." + (minor + 1).to_s + ".0"
end

puts bump_minor("1.3.5")

Batasan Versi

Pengguna menentukan versi paket Anda dengan operator di Gemfile mereka:

  • '~> 1.4' mengizinkan versi 1.4 hingga sebelum 2.0 (pesimistis).
  • >= 1.4 mengizinkan versi apa pun yang lebih baru.
  • = 1.4.2 mengunci versi yang tepat.

Operator pesimistis ~> adalah yang paling umum karena menyeimbangkan pembaruan dan keamanan.

Simpan Catatan Perubahan

Peliharalah CHANGELOG.md yang mencatat perubahan pada setiap versi. Catatan ini memberi tahu pengguna apa yang baru, apa yang rusak, dan cara melakukan migrasi. Sertakan entri catatan perubahan setiap kali menaikkan versi.

Versi Pra-rilis

Versi seperti 2.0.0.beta1 menandai pratinjau yang belum stabil. Pengguna harus memilihnya secara eksplisit untuk memasangnya, sehingga Anda dapat merilis versi awal untuk pengujian tanpa memengaruhi pemasangan normal.

version = "2.0.0.beta1"
puts "Pre-release? " + version.include?("beta").to_s

Pemeriksaan Singkat

Uji pemahaman Anda tentang pemberian versi.

Ringkasan: Pengujian dan Pemberian Versi

Anda telah mempelajari cara menjaga keandalan paket:

  • Tulis pengujian dengan Minitest atau RSpec; otomatiskan dengan Rake dan integrasi berkelanjutan.
  • Ikuti pemberian versi semantik: MAJOR.MINOR.PATCH.
  • Naikkan bagian yang tepat untuk perbaikan, fitur, atau perubahan yang merusak kompatibilitas.
  • Gunakan batasan ~> dan peliharalah catatan perubahan.

Selanjutnya, kita menerbitkan paket ke RubyGems.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pengujian dan Pemberian Versi” gratis?

Ya — teks lengkap “Pengujian dan Pemberian Versi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Ruby Academy, upgrade ke CoddyKit PRO. Kursus Ruby Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pengujian dan Pemberian Versi”?

Kualitas dan semver. Kamu berlatih Ruby 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 Ruby Academy?

Tidak diperlukan pengalaman sebelumnya. Ruby 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 3 dari 4.

Berapa lama pelajaran “Pengujian dan Pemberian Versi” 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 Ruby Academy ini?

Ya. Setiap pelajaran Ruby 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. Struktur Gem
  2. Menulis Kode
  3. Pengujian dan Pemberian Versi
  4. Mempublikasikan ke RubyGems
← Kembali ke Ruby Academy