Sobes.tech
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
}