Skip to content

Latest commit

 

History

History
86 lines (56 loc) · 5.09 KB

README.md

File metadata and controls

86 lines (56 loc) · 5.09 KB

Тестирование, Unit-тесты


Unit-тесты

Unit-тесты — это тесты, которые проверяют работу отдельных единиц кода (например, функций, методов или классов) в изоляции от остальной части приложения. Они помогают:

  • Убедиться, что код работает правильно.
  • Обнаружить ошибки на ранних этапах разработки.
  • Упростить рефакторинг кода.

Основные принципы Unit-тестирования

  • Изоляция - Тесты должны проверять только одну единицу кода, изолированно от других частей приложения.
  • Автоматизация - Тесты должны запускаться автоматически, без ручного вмешательства.
  • Повторяемость - Тесты должны давать одинаковый результат при каждом запуске.
  • Читаемость - Тесты должны быть понятными и легко поддерживаемыми.

Библиотеки для Unit-тестирования

JUnit — это самая популярная библиотека для написания Unit-тестов на Java и Kotlin. Она предоставляет аннотации и методы для создания и запуска тестов.

Основные аннотации JUnit:

  • @Test — Указывает, что метод является тестом.
  • @Before — Метод, который выполняется перед каждым тестом.
  • @After — Метод, который выполняется после каждого теста.
  • @BeforeClass — Метод, который выполняется один раз перед всеми тестами в классе.
  • @AfterClass — Метод, который выполняется один раз после всех тестов в классе.
  • @Ignore — Игнорирует тест.

AndroidX Test (androidx.test)

AndroidX Test — это библиотека, которая предоставляет инструменты для тестирования Android-приложений, включая Unit-тесты и Instrumentation-тесты.

Основные компоненты:

  • JUnit Extensions - Расширения JUnit для работы с Android-компонентами.
  • Espresso - Библиотека для UI-тестирования.
  • Robolectric - Библиотека для тестирования Android-кода без эмулятора.

Kotlin Coroutines Test (kotlinx.coroutines.test)

Библиотека kotlinx.coroutines.test предоставляет инструменты для тестирования кода, который использует корутины. Она позволяет управлять временем и потоками в тестах.

Основные компоненты:

  • TestCoroutineDispatcher - Диспетчер для управления корутинами в тестах.
  • runBlockingTest - Запускает корутины в тестовом режиме, позволяя управлять временем.

Практические советы по написанию Unit-тестов

  • Тестируйте только публичные методы - Не тестируйте приватные методы, так как они являются частью реализации и могут измениться.
  • Используйте моки (Mocking) - Для изоляции тестируемого кода используйте моки (например, с библиотекой Mockito).
  • Пишите простые и понятные тесты - Тесты должны быть легко читаемыми и поддерживаемыми.
  • Покрывайте все сценарии - Тестируйте не только "счастливый путь", но и edge cases (например, пустые входные данные, ошибки).

Кратко

  • Unit-тесты — Проверяют работу отдельных единиц кода в изоляции.
  • JUnit — Основная библиотека для Unit-тестирования.
  • AndroidX Test — Расширяет JUnit для тестирования Android-приложений.
  • Kotlin Coroutines Test — Упрощает тестирование кода с корутинами.

Примеры:

  • JUnit - @Test, assertEquals.
  • AndroidX Test - @RunWith(AndroidJUnit4::class).
  • Coroutines Test - runBlockingTest.