Назад к вопросам
Junior
108
questionbank

Какие инструменты и библиотеки для юнит-тестирования используются в Kotlin?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

JUnit 5. Кроссплатформенный фреймворк для юнит-тестирования, стандарт для JVM.

Mockito/MockK. Библиотеки для создания моков и стабов объектов, упрощают изоляцию тестируемого кода. MockK является Kotlin-идиоматичной.

AssertJ/Truth. Библиотеки для написания гибких и читаемых утверждений (assertions).

Kotest. Многофункциональный тестовый фреймворк, написанный на Kotlin, поддерживает различные стили написания тестов.

Spek 2. Фреймворк спецификационного юнит-тестирования (Spec-style testing), основанный на Kotlin.

Kotlinx.coroutines.test. Библиотека для тестирования кода с корутинами.

// Пример использования JUnit 5 + MockK + AssertJ
import org.junit.jupiter.api.Test
import org.mockito.Mockito.mock
import org.assertj.core.api.Assertions.assertThat

class MyServiceTest {

    private val repository: MyRepository = mock() // Мокируем зависимость
    private val service = MyService(repository)

    @Test
    fun `getData should return data from repository`() {
        val expectedData = "some data"
        // Mockito.whenever(repository.fetchData()).thenReturn(expectedData) // Пример с Mockito
        // every { repository.fetchData() } returns expectedData // Пример с MockK

        val actualData = service.getData()

        assertThat(actualData).isEqualTo(expectedData) // Утверждение с AssertJ
        // verify { repository.fetchData() } // Пример верификации с MockK
    }
}

interface MyRepository {
    fun fetchData(): String
}

class MyService(private val repository: MyRepository) {
    fun getData(): String {
        return repository.fetchData()
    }
}