05. Criando Test Doubles com MockK
Ao concluirmos todas as aulas deste tópico, nós:
- Seremos capazes de criar dummies, mocks, spies e stubs com o MockK (o substituto nativo e idiomático do Mockito para Kotlin).
- Saberemos como configurar respostas determinísticas (
every { ... } returns ...), controlar o modo estrito vs relaxado (relaxed = true) e verificar interações (verify { ... }). - Saberemos como simplificar e tornar nosso código de teste altamente expressivo usando recursos avançados do Kotlin e do MockK (
slot,withArge lambdas).
Conteúdo
-
Introdução ao MockK para Desenvolvedores Kotlin
Aprenda a configurar a dependência do MockK no Gradle 9 e no Maven, conheça suas APIs idiomáticas em Kotlin e entenda as três regras essenciais para criar dublês de teste.
-
Criando Dummies e Relaxed Mocks com MockK
Aprenda a criar objetos Dummy com o MockK, entenda por que um Dummy precisa de comportamento relaxado diante de logs e crie uma função utilitária dummy() para deixar seus testes cristalinos.
-
Criando Stubs com every { ... } returns
Aprenda a criar e configurar Stubs com o MockK usando every { ... } returns, throws, answers e Argument Matchers em Kotlin.
-
Comportamento Estrito vs Relaxado de Stubs no MockK
Compreenda o que é um Strict Stub, como o MockK aplica o comportamento estrito por padrão sem inverter a sintaxe de stubbing e quando preferir stubs estritos ou relaxados.
-
Criando Mocks e Verificando Interações com verify
Aprenda a criar objetos Mock com o MockK, verificar interações com verify, confirmVerified e Called, e capturar argumentos reais com CapturingSlot (slot).
-
Criando Spies com spyk no MockK
Compreenda a diferença arquitetural entre um Mock e um Spy, aprenda a envolver objetos reais com spyk() no MockK e saiba como fazer stubbing parcial e verificar interações.
-
Idiomatismos Avançados em Kotlin com MockK
Aprenda a eliminar código boilerplate de seus testes unitários usando expressões lambda em answers, match { ... } e withArg { ... } no MockK.