0Pricing
Ruby Academy · Lektion

Testen und Versionieren

Qualität und SemVer

Testen und Versionieren ist eine kostenlose Ruby Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ruby Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum ein Gem testen?

Da ein Gem von vielen Projekten verwendet wird, betrifft ein Fehler alle. Automatisierte Tests ermöglichen es Ihnen, den Code vertrauensvoll zu ändern und nachzuweisen, dass das Gem weiterhin funktioniert.

  • Tests dokumentieren das erwartete Verhalten.
  • Sie erkennen Regressionen vor einer Veröffentlichung.
  • Seriöse Benutzer erwarten sie, bevor sie ein Gem einsetzen.

Ein Framework auswählen

Die beiden beliebtesten Optionen sind Minitest (wird mit Ruby ausgeliefert und ist leichtgewichtig) und RSpec (umfangreiche DSL und sehr verbreitet). Beide sind geeignet. Wählen Sie eines aus und fügen Sie es in der gemspec als Entwicklungsabhängigkeit hinzu.

Ein Minitest-Beispiel

Minitest-Tests sind einfache Klassen mit Assertion-Methoden. Hier sehen Sie ein eigenständiges Beispiel, das die Logik Ihres Gems ausführt und das Ergebnis überprüft.

require "minitest/autorun"

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

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

Häufige Assertions

Nützliche Minitest-Assertions:

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

Jeder Test sollte ein eindeutig abgegrenztes Verhalten prüfen.

require "minitest/autorun"

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

  def test_truth
    refute_nil 5
  end
end

Tests ausführen und automatisieren

Üblicherweise fügen Sie eine Rake-Aufgabe hinzu, sodass rake test die gesamte Testsuite ausführt. Die kontinuierliche Integration führt anschließend bei jedem Push dieselbe Aufgabe mit mehreren Ruby-Versionen aus, um Probleme frühzeitig zu erkennen.

Was ist Semantic Versioning?

Semantic Versioning (semver) verleiht einer Versionsnummer im Format MAJOR.MINOR.PATCH eine Bedeutung:

  • MAJOR: inkompatible Änderungen an der API.
  • MINOR: neue Funktionen, abwärtskompatibel.
  • PATCH: abwärtskompatible Fehlerbehebungen.

Benutzer verlassen sich darauf, um sicher aktualisieren zu können.

Eine Version lesen

Bei 2.4.1 ist major gleich 2, minor gleich 4 und patch gleich 1. Wenn Sie die Zeichenkette aufteilen, werden die einzelnen Bestandteile sichtbar.

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

Wann welcher Bestandteil erhöht wird

Entscheidungsregeln:

  • Sie haben einen Fehler behoben, ohne die API zu ändern? Erhöhen Sie patch.
  • Sie haben eine Funktion hinzugefügt und alter Code funktioniert weiterhin? Erhöhen Sie minor und setzen Sie patch auf 0 zurück.
  • Sie haben bestehendes Verhalten entfernt oder geändert? Erhöhen Sie major und setzen Sie minor und patch auf 0 zurück.
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")

Versionsbedingungen

Benutzer legen die Version Ihres Gems mit Operatoren in ihrer Gemfile fest:

  • '~> 1.4' erlaubt Versionen ab 1.4 bis, aber nicht einschließlich 2.0 (pessimistische Bedingung).
  • '>= 1.4' erlaubt jede neuere Version.
  • '= 1.4.2' legt eine exakt bestimmte Version fest.

Die pessimistische Bedingung ~> ist am weitesten verbreitet, da sie Aktualisierungen und Sicherheit ausbalanciert.

Ein Changelog pflegen

Führen Sie eine CHANGELOG.md-Datei, in der die Änderungen jeder Version aufgeführt sind. Sie informiert Benutzer darüber, was neu ist, was nicht mehr funktioniert und wie sie migrieren können. Verknüpfen Sie jede Versionsänderung mit einem Eintrag im Changelog.

Vorabversionen

Versionen wie 2.0.0.beta1 kennzeichnen instabile Vorabversionen. Benutzer müssen sich ausdrücklich für deren Installation entscheiden. So können Sie frühe Versionen zum Testen veröffentlichen, ohne normale Installationen zu beeinflussen.

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

Schnelltest

Testen Sie Ihr Verständnis der Versionierung.

Zusammenfassung: Testen und Versionieren

Sie haben gelernt, wie Sie ein Gem zuverlässig halten:

  • Schreiben Sie Tests mit Minitest oder RSpec und automatisieren Sie sie mit Rake und CI.
  • Befolgen Sie semver: MAJOR.MINOR.PATCH.
  • Erhöhen Sie bei Fehlerbehebungen, Funktionen oder inkompatiblen Änderungen den richtigen Bestandteil.
  • Verwenden Sie ~>-Bedingungen und führen Sie ein Changelog.

Als Nächstes veröffentlichen wir das Gem auf RubyGems.

Häufig gestellte Fragen

Ist die Lektion „Testen und Versionieren“ kostenlos?

Ja — der vollständige Text von „Testen und Versionieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ruby Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Testen und Versionieren“?

Qualität und SemVer Du übst Ruby Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Ruby Academy zu starten?

Keine Vorkenntnisse erforderlich. Ruby Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Testen und Versionieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Ruby Academy-Lektion Code schreiben und ausführen?

Ja. Jede Ruby Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Gem-Struktur
  2. Den Code schreiben
  3. Testen und Versionieren
  4. Auf RubyGems veröffentlichen
← Zurück zu Ruby Academy