Назад к вопросам
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()
}
}