0Pricing
Kotlin Multiplatform Academy · Aula

Simule o cliente e os repositórios do Ktor

Use MockEngine e simulações para obter testes determinísticos.

Simule o cliente e os repositórios do Ktor é uma aula grátis de Kotlin Multiplatform Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kotlin Multiplatform Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Multiplatform Academy inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

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.

Perguntas Frequentes

A aula “Simule o cliente e os repositórios do Ktor” é grátis?

Sim — o texto completo de “Simule o cliente e os repositórios do Ktor” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kotlin Multiplatform Academy, atualize para CoddyKit PRO. O curso de Kotlin Multiplatform Academy inclui 4 aulas no total.

O que vou aprender em “Simule o cliente e os repositórios do Ktor”?

Use MockEngine e simulações para obter testes determinísticos. Você pratica Kotlin Multiplatform Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Kotlin Multiplatform Academy?

Nenhuma experiência prévia é necessária. Kotlin Multiplatform Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Simule o cliente e os repositórios do Ktor”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Kotlin Multiplatform Academy?

Sim. Cada aula de Kotlin Multiplatform Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. kotlin.test em commonTest
  2. Teste funções suspend e fluxos
  3. Simule o cliente e os repositórios do Ktor
  4. Execute testes nos destinos Android e iOS
← Voltar para Kotlin Multiplatform Academy