Junior
Welke tools worden gebruikt voor het testen van Kotlin-projecten?
sobes.tech AI
Antwoord van AI
- Unit-tests:
- JUnit 5 (meest gangbaar)
- Kotest (functionele tests, Property-based testing)
- Integratietests:
- JUnit 5
- Testcontainers (voor testen met afhankelijkheden, bijvoorbeeld databases)
- MockK (voor het maken van mocks en stubs)
- Mockito-Kotlin (wrapper voor Mockito voor Kotlin)
- UI-testen (Android):
- Espresso
- UI Automator
- Compose Test (voor Jetpack Compose)
- Prestatietests:
- JMH (Java Microbenchmark Harness)
- Code coverage:
- JaCoCo
- Kover (gespecialiseerde plugin voor Kotlin)
Voorbeeld van gebruik van MockK:
// Voorbeeldklasse om te testen
class UserRepository(private val apiService: ApiService) {
fun getUser(userId: String): User {
return apiService.fetchUser(userId)
}
}
// Voorbeeldtest met MockK
import io.mockk.every
import io.mockk.mockk
import org.junit.jupiter.api.Test
class UserRepositoryTest {
@Test
fun testGetUser() {
val apiService = mockk<ApiService>()
val expectedUser = User("1", "John Doe")
// Mock de fetchUser-aanroep
every { apiService.fetchUser("1") } returns expectedUser
val userRepository = UserRepository(apiService)
val actualUser = userRepository.getUser("1")
// Resultaat controleren
assert(actualUser == expectedUser)
}
}
// Voorbeeld van ondersteunende klassen/interfaces
data class User(val id: String, val name: String)
interface ApiService {
fun fetchUser(userId: String): User
}