Testgetriebene Entwicklung (TDD) mit Go: Eine pragmatische Einführung.

Testgetriebene Entwicklung (TDD) mit Go: Eine pragmatische Einführung.

2 Min. Lesezeit

In diesem Beitrag demonstriere ich meinen pragmatischen TDD-Workflow für Go, der die Code-Stabilität erhöht, ohne die Entwicklungsgeschwindigkeit auszubremsen.

Testgetriebene Entwicklung (TDD) mit Go: Eine pragmatische Einführung.

Test-Driven Development (TDD) mit Go: Pragmatischer Ansatz

TDD ist nicht “Write Tests First, Code Second” als Religion. Es ist eine Entwicklungsmethode, die eine klare Spezifikation durch Tests führt.

Ich zeige, wie ich TDD in Go praktiziere, ohne religiös zu sein.

Das Red-Green-Refactor Cycle

Schritt 1: Red - Schreib einen fallenenden Test

func TestCalculateDiscount(t *testing.T) {
  result := CalculateDiscount(100, 0.1)  // Funktion existiert noch nicht!
  expected := 90.0
  if result != expected {
    t.Errorf("expected %f, got %f", expected, result)
  }
}

Test schlägt fehl: undefined: CalculateDiscount

Schritt 2: Green - Schreib minimalen Code, um Test zu bestehen

func CalculateDiscount(price, discount float64) float64 {
  return price * (1 - discount)
}

Test läuft grün!

Schritt 3: Refactor - Verbessere den Code

func CalculateDiscount(price, discount float64) float64 {
  if discount < 0 || discount > 1 {
    return price  // Edge case handling
  }
  return price * (1 - discount)
}

Test läuft immer noch grün?

Best Practices

  • Tests schreiben für kritische Logik, nicht für jeden einzelnen Line
  • Mock externe Dependencies
  • Table-Driven Tests für viele Szenarien nutzen

Interessieren Sie sich für dieses Thema oder benötigen Sie Beratung?
Ich unterstütze Sie gerne bei Ihren Projekten. Kontaktieren Sie mich für eine strategische Beratung.

Interesse an einer Lösung?

Ich unterstütze Unternehmen und Verbände bei der digitalen Transformation. Erfahre mehr über meine Softwareentwicklung oder lass dich im Bereich DevSecOps beraten.

Beratungstermin vereinbaren