Kotlin Multiplatform Academy · Lektion

Ktor-Client und Repositories faken

Verwenden Sie MockEngine und Fakes für deterministische Tests.

Lektion 3 von 413 Schritte

Ktor-Client und Repositories faken ist eine kostenlose Kotlin Multiplatform 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 Kotlin Multiplatform Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Multiplatform Academy-Kurs umfasst insgesamt 4 Lektionen.

Tests sollten nicht auf das Netzwerk zugreifen

Echte HTTP-Aufrufe sind in Tests langsam und unzuverlässig. Simulieren Sie stattdessen die Antwort, damit jeder Durchlauf schnell und deterministisch ist. 🎯

Ktor liefert eine MockEngine mit

Ktor enthält eine integrierte MockEngine, die vorbereitete Antworten zurückgibt, anstatt echte Anfragen zu senden.

Einen Mock-Client erstellen

Erstellen Sie einen HttpClient auf Basis von MockEngine und legen Sie genau fest, mit welchen Bytes und welchem Status er antwortet.

val client = HttpClient(MockEngine) {
    engine { addHandler { respondOk("[]") } }
}

Benutzerdefiniertes JSON zurückgeben

Rufen Sie innerhalb des Handlers respond mit dem JSON-Body und den Headern auf, die Ihr Code erwartet.

respond(
    content = "{\"name\":\"Sam\"}",
    headers = headersOf(HttpHeaders.ContentType, "application/json")
)

Fehler simulieren

Lassen Sie den Handler mit einem status wie 500 antworten, um Ihre Fehlerbehandlung ohne echten Server zu überprüfen.

respond("oops", HttpStatusCode.InternalServerError)

Den Client injizieren

Ihr Repository sollte seinen HttpClient als Parameter akzeptieren. So übergeben Tests den Mock und die Produktionsumgebung den echten Client.

class UserRepo(private val client: HttpClient)

Warum ein Fake-Repository?

Zum Testen eines ViewModels benötigen Sie nicht einmal Ktor: Übergeben Sie ein fake-Repository, das feste Daten zurückgibt.

Ein Interface faken

Da Ihr Repository hinter einem interface verborgen ist, besteht ein Fake einfach aus einer kleinen Klasse, die dieses mit vorbereiteten Ergebnissen implementiert.

class FakeRepo : UserRepo {
    override suspend fun load(id: Int) = User("Sam")
}

Fehlerpfade kontrollieren

Ein Fake kann bei Bedarf auch throw ausführen. So können Sie testen, wie Aufrufer auf eine fehlerhafte Datenschicht reagieren.

override suspend fun load(id: Int): User =
    throw IOException("offline")

Fakes und Mocks

Ein selbst geschriebener fake ist einfach und multiplattformtauglich, während Mocking-Bibliotheken häufig keine vollständige Kotlin/Native-Unterstützung bieten.

Von Grund auf deterministisch

Mit MockEngine und Fakes kontrolliert jeder Test seine Eingaben. Die Ergebnisse hängen daher nie von einem Netzwerk oder gemeinsam genutztem state ab. ✅

Kurze Prüfung

Wählen Sie die richtige Methode zum Faken von HTTP aus.

Zusammenfassung

Ersetzen Sie echtes HTTP durch MockEngine und injizieren Sie Fake-Repositories, damit Tests schnell, isoliert und vorhersehbar bleiben.

Kostenlos starten

Lerne Kotlin mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
30
Lektionen
120

Häufig gestellte Fragen

Ist die Lektion „Ktor-Client und Repositories faken“ kostenlos?

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

Was lerne ich in „Ktor-Client und Repositories faken“?

Verwenden Sie MockEngine und Fakes für deterministische Tests. Du übst Kotlin Multiplatform 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 Kotlin Multiplatform Academy zu starten?

Keine Vorkenntnisse erforderlich. Kotlin Multiplatform 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 „Ktor-Client und Repositories faken“?

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 Kotlin Multiplatform Academy-Lektion Code schreiben und ausführen?

Ja. Jede Kotlin Multiplatform 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. kotlin.test in commonTest
  2. Suspend-Funktionen und Flows testen
  3. Ktor-Client und Repositories faken
  4. Tests auf Android- und iOS-Targets ausführen
← Zurück zu Kotlin Multiplatform Academy