0Pricing
Kotlin Multiplatform Academy · Lekcja

Atrapy klienta Ktor i repozytoriów

Używaj MockEngine i atrap do deterministycznych testów.

Atrapy klienta Ktor i repozytoriów to bezpłatna lekcja Kotlin Multiplatform Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Kotlin Multiplatform Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Multiplatform Academy zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

Tests Should Not Hit the Network

Real HTTP calls are slow and flaky in tests. Instead you fake the response so each run is fast and deterministic. 🎯

Ktor Ships a MockEngine

Ktor includes a built-in MockEngine that returns canned responses instead of making real requests.

Build a Mock Client

Construct an HttpClient on top of MockEngine and decide exactly what bytes and status it replies with.

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

Return Custom JSON

Inside the handler, call respond with the JSON body and headers your code expects to parse.

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

Simulate Errors

Have the handler reply with a status like 500 to verify your error handling without a real server.

respond("oops", HttpStatusCode.InternalServerError)

Inject the Client

Your repository should accept its HttpClient as a parameter, so tests pass the mock and production passes the real one.

class UserRepo(private val client: HttpClient)

Why a Fake Repository

To test a ViewModel you do not even need Ktor: pass a fake repository that returns fixed data.

Fake an Interface

Because your repo hides behind an interface, a fake is just a small class implementing it with canned results.

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

Control Failure Paths

A fake can also throw on demand, letting you test how callers react to a failing data layer.

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

Fakes vs Mocks

A hand-written fake is simple and multiplatform-safe, while mocking libraries often lack full Kotlin/Native support.

Deterministic by Design

With MockEngine and fakes, every test controls its inputs, so results never depend on a network or shared state. ✅

Quick Check

Pick the right way to fake HTTP.

Recap

Swap real HTTP for MockEngine and inject fake repositories so tests stay fast, isolated, and predictable.

Często zadawane pytania

Czy lekcja „Atrapy klienta Ktor i repozytoriów” jest bezpłatna?

Tak — pełny tekst „Atrapy klienta Ktor i repozytoriów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Kotlin Multiplatform Academy, przejdź na CoddyKit PRO. Kurs Kotlin Multiplatform Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Atrapy klienta Ktor i repozytoriów”?

Używaj MockEngine i atrap do deterministycznych testów. Ćwiczysz Kotlin Multiplatform Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Kotlin Multiplatform Academy?

Nie wymagamy żadnego doświadczenia. Kotlin Multiplatform Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Atrapy klienta Ktor i repozytoriów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Kotlin Multiplatform Academy?

Tak. Każda lekcja Kotlin Multiplatform Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. kotlin.test w commonTest
  2. Testowanie funkcji suspend i Flow
  3. Atrapy klienta Ktor i repozytoriów
  4. Uruchamianie testów dla celów Androida i iOS
← Powrót do Kotlin Multiplatform Academy