Quick/Nimble für Swift: Vollständige Anleitung mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was sind Quick/Nimble und warum werden sie benötigt?

Quick und Nimble sind zwei sich ergänzende Bibliotheken für Swift, die speziell für das Schreiben von Tests im Behavior-Driven Development (BDD)-Stil entwickelt wurden. BDD ist eine Entwicklungsmethodik, die sich auf das Verhalten der Anwendung aus Benutzersicht konzentriert, nicht auf technische Implementierungsdetails. Anstelle von trockenen Behauptungen wie XCTAssertEqual(a, b) beschreiben Sie, was passieren soll: "Wenn der Benutzer auf den Button klickt, sollte die App eine Begrüßung anzeigen".

Quick ist ein Framework zur Beschreibung von Testszenarien. Es bietet eine DSL (Domain-Specific Language), mit der Sie Tests hierarchisch strukturieren können: describe (Kontextbeschreibung), context (Bedingungen präzisieren) und it (konkreter Test). Das macht Tests lesbar und verständlich – auch für nicht-technische Teammitglieder wie Manager oder Analysten.

Nimble ist eine Bibliothek für aussagekräftige Matcher (Assertions). Statt standardmäßigen XCTAssert-Aufrufen verwenden Sie ausdrucksstarke Konstrukte: expect(value).to(equal(expected)), expect(array).to(contain(element)). Nimble bietet Dutzende integrierte Matcher und ermöglicht es Ihnen, ganz einfach eigene zu erstellen.

Warum ist das sinnvoll?

  • Lesbarkeit: BDD-Tests lesen sich wie eine Spezifikation. Sie können sie dem Kunden zeigen und sicherstellen, dass die Anforderungen richtig verstanden wurden.
  • Struktur: Die Hierarchie aus describe/context/it hilft, Tests logisch zu organisieren und "Spaghetti-Code" zu vermeiden.
  • Aussagekräftige Matcher: Nimble macht Behauptungen anschaulicher und informativer. Fehler in Tests werden sofort verständlich.
  • Bessere Fehlersuche: Bei einem fehlgeschlagenen Test sehen Sie nicht nur "erwartet 5, erhalten 3", sondern den vollständigen Kontext: "Wenn der Benutzer ein falsches Passwort eingibt, sollte das System einen Fehler anzeigen".

Installation von Quick/Nimble

Quick und Nimble werden über CocoaPods oder den Swift Package Manager (SPM) installiert. Wir zeigen beide Wege.

Installation mit CocoaPods

Falls Sie CocoaPods noch nicht nutzen, installieren Sie es zuerst:

sudo gem install cocoapods

Erstellen Sie im Stammverzeichnis Ihres Projekts eine Datei namens Podfile und fügen Sie Folgendes ein:

target 'YourAppName' do
  # Normale Abhängigkeiten (falls vorhanden)
  use_frameworks!

  target 'YourAppNameTests' do
    inherit! :search_paths
    pod 'Quick'
    pod 'Nimble'
  end
end

Führen Sie dann aus:

pod install

Öffnen Sie anschließend die Datei .xcworkspace.

Installation mit dem Swift Package Manager (SPM)

In Xcode: File → Add Packages... und geben Sie die Repository-URLs ein:

https://github.com/Quick/Quick.git
https://github.com/Quick/Nimble.git

Wählen Sie die neueste stabile Version aus und fügen Sie die Pakete zu Ihrem Test-Target hinzu (YourAppNameTests).

Schnellstart: Ihr erster Test

Wir erstellen eine einfache Klasse Calculator und testen sie.

Die zu testende Klasse

// Calculator.swift
import Foundation

class Calculator {
    func add(_ a: Int, _ b: Int) -> Int {
        return a + b
    }

    func subtract(_ a: Int, _ b: Int) -> Int {
        return a - b
    }

    func multiply(_ a: Int, _ b: Int) -> Int {
        return a * b
    }
}

Test mit Quick und Nimble

// CalculatorSpec.swift
import Quick
import Nimble
@testable import YourAppName // Ersetzen Sie dies durch den Namen Ihrer App

class CalculatorSpec: QuickSpec {
    override func spec() {
        describe("Calculator") {
            var calculator: Calculator!

            beforeEach {
                calculator = Calculator(                    

Empfehlungen