Ответ
- Unit-тесты (JUnit, Mockito) – тестирование отдельных методов/классов.
@Test
fun `tea price calculation`() {
val tea = Tea(price = 100, discount = 20)
assertEquals(80, tea.finalPrice)
}
-
Интеграционные тесты – проверка взаимодействия компонентов (например, с API через Retrofit/MockWebServer).
-
UI-тесты (Espresso) – автоматизация действий пользователя:
@Test
fun checkTeaSelection() {
onView(withId(R.id.tea_list)).perform(click())
onView(withText("Green Tea")).check(matches(isDisplayed()))
}
-
Snapshot-тестирование (Facebook Screenshot Tests) – сравнение UI с эталонными скриншотами.
-
Ручное тестирование – проверка на реальных устройствах (включая edge-cases: низкий заряд, плохое соединение).
Для TEA (Test, Execute, Analyze) важно покрытие кода (JaCoCo) и CI-интеграция (Jenkins, GitHub Actions).