Que bibliotecas você usa para testes em Kotlin?
sobes.tech IA
Resposta da IA
-
JUnit 5: Estrutura padrão para testes unitários na JVM. Uso-a na maioria dos testes unitários.
-
MockK: Biblioteca para simular objetos e comportamentos. Útil para criar mocks, stubs e verificar a interação de objetos.
-
Kotest: Estrutura multifuncional para testes, suportando vários estilos de escrita de testes (Spec, WordSpec, StringSpec, etc.). Uso frequentemente para escrever testes mais expressivos e estruturados.
-
Truth: Biblioteca para criar afirmações (assertions) legíveis. Torna os testes mais compreensíveis.
-
Robolectric: Estrutura para testar aplicações Android sem dispositivo virtual ou emulador. Simula o ambiente Android na JVM.
-
Espresso: Estrutura do Google para testar a interface de utilizador no Android. Uso para testes de integração e UI em projetos Android.
Exemplo de uso do MockK:
// Importar as classes necessárias
import io.mockk.*
import org.junit.jupiter.api.Test
// Classe de exemplo que vamos testar
class MyService(private val dependency: Dependency) {
fun processData(data: String): String {
val processed = dependency.process(data)
return "Result: $processed"
}
}
// Classe de dependência que vamos simular
interface Dependency {
fun process(input: String): String
}
class MyServiceTest {
@Test
fun testProcessData() {
// Criar o mock da dependência
val mockDependency = mockk<Dependency>()
// Definir o comportamento do mock
every { mockDependency.process("input") } returns "processed_data"
// Criar uma instância da classe a testar com o mock
val myService = MyService(mockDependency)
// Executar o método a testar
val result = myService.processData("input")
// Verificar o resultado
assert(result == "Result: processed_data")
// Verificar que o método do mock foi chamado com o argumento esperado
verify { mockDependency.process("input") }
}
}