0Pricing
Ruby Academy · Ders

Test ve Sürümleme

Kalite ve semver

Test ve Sürümleme, CoddyKit'te ücretsiz bir Ruby Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Ruby Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Ruby Academy kursu toplamda 4 dersten oluşur.

Bir Gem Paketi Neden Sınanmalı

Bir gem paketi birçok proje tarafından kullanıldığı için tek bir hata herkesi etkileyebilir. Otomatik sınamalar, kodu güvenle değiştirmenizi ve gem paketinin hâlâ çalıştığını kanıtlamanızı sağlar.

  • Sınamalar beklenen davranışı belgeler.
  • Yayımlamadan önce gerilemeleri yakalar.
  • Ciddi kullanıcılar bir gem paketini benimsemeden önce bunları bekler.

Bir Çatı Seçme

Yaygın iki seçenek Minitest (Ruby ile birlikte gelir ve hafiftir) ile RSpec'tir (zengin bir DSL sunar ve çok yaygındır). İkisi de uygundur; birini seçin ve paket belirtim dosyasına geliştirme bağımlılığı olarak ekleyin.

Minitest Örneği

Minitest sınamaları, doğrulama yöntemleri içeren sıradan sınıflardır. Aşağıda, gem paketinizin mantığını çalıştırıp sonucu denetleyen kendi içinde tamamlanmış bir örnek verilmiştir.

require "minitest/autorun"

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

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

Yaygın Doğrulamalar

Yararlı Minitest doğrulamaları:

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

Her sınama tek bir açık davranışı denetlemelidir.

require "minitest/autorun"

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

  def test_truth
    refute_nil 5
  end
end

Sınamaları Çalıştırma ve Otomatikleştirme

Genellikle tüm kümeyi rake test komutuyla çalıştıran bir Rake görevi eklersiniz. Sürekli tümleştirme daha sonra sorunları erkenden yakalamak için aynı görevi her gönderimde ve birden çok Ruby sürümünde çalıştırır.

Anlamsal Sürümleme Nedir

Anlamsal Sürümleme (semver), MAJOR.MINOR.PATCH sürüm numarasına anlam kazandırır:

  • MAJOR: uyumsuz arayüz değişiklikleri.
  • MINOR: geriye dönük uyumlu yeni özellikler.
  • PATCH: geriye dönük uyumlu hata düzeltmeleri.

Kullanıcılar güvenli bir şekilde yükseltme yapmak için buna güvenir.

Bir Sürümü Okuma

2.4.1 verildiğinde ana sürüm 2, ikincil sürüm 4, yama sürümü 1'dir. Dizgiyi bölmek parçaları gösterir.

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

Her Bölüm Ne Zaman Artırılır

Karar kuralları:

  • Arayüzü değiştirmeden bir hatayı mı düzelttiniz? Yamayı artırın.
  • Eski kod hâlâ çalışırken bir özellik mi eklediniz? İkincil sürümü artırın ve yamayı 0'a sıfırlayın.
  • Mevcut davranışı mı kaldırdınız veya değiştirdiniz? Ana sürümü artırın ve ikincil sürümle yamayı 0'a sıfırlayın.
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")

Sürüm Kısıtlamaları

Kullanıcılar, Gemfile dosyalarındaki işleçlerle gem paketinize sürüm kısıtlaması koyar:

  • '~> 1.4', 1.4 sürümünden 2.0 sürümüne kadar olan sürümlere izin verir; 2.0 dahil değildir (kötümser kısıtlama).
  • '>= 1.4', daha yeni herhangi bir sürüme izin verir.
  • '= 1.4.2', tam olarak belirtilen sürümü kilitler.

Kötümser ~> işleci, güncellemelerle güvenlik arasında denge kurduğu için en yaygın seçenektir.

Değişiklik Günlüğü Tutma

Her sürümde nelerin değiştiğini listeleyen bir CHANGELOG.md dosyası tutun. Bu dosya kullanıcılara nelerin yeni olduğunu, nelerin bozulduğunu ve nasıl geçiş yapılacağını anlatır. Her sürüm artışına bir değişiklik günlüğü girdisi ekleyin.

Ön Sürümler

2.0.0.beta1 gibi sürümler kararlı olmayan önizlemeleri belirtir. Kullanıcıların bunları kurmak için açıkça tercih yapması gerekir; böylece normal kurulumları etkilemeden erken sürümleri sınama amacıyla yayımlayabilirsiniz.

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

Kısa Sınama

Sürümlemeyle ilgili anlayışınızı sınayın.

Özet: Sınama ve Sürümleme

Bir gem paketini güvenilir tutmayı öğrendiniz:

  • Minitest veya RSpec ile sınamalar yazın; Rake ve sürekli tümleştirme ile bunları otomatikleştirin.
  • Anlamsal sürümlemeyi izleyin: MAJOR.MINOR.PATCH.
  • Düzeltmeler, özellikler veya geriye dönük uyumsuz değişiklikler için doğru bölümü artırın.
  • ~> kısıtlamalarını kullanın ve bir değişiklik günlüğü tutun.

Sırada gem paketini RubyGems'e yayımlamak var.

Sıkça Sorulan Sorular

“Test ve Sürümleme” dersi ücretsiz mi?

Evet — “Test ve Sürümleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Ruby Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Ruby Academy kursu toplamda 4 dersten oluşur.

“Test ve Sürümleme” dersinde ne öğreneceğim?

Kalite ve semver Ruby Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Ruby Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Ruby Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Test ve Sürümleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Ruby Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Ruby Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Gem Yapısı
  2. Kodu Yazma
  3. Test ve Sürümleme
  4. RubyGems'e Yayımlama
← Ruby Academy Sayfasına Dön