Писал ли unit-тесты

«Писал ли unit-тесты» — вопрос из категории Тестирование, который задают на 26% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, писал unit-тесты с использованием JUnit и Mockito. Например, для тестирования ViewModel:

class MyViewModelTest {
    @Mock
    private lateinit var repository: MyRepository

    @Before
    fun setup() {
        MockitoAnnotations.openMocks(this)
    }

    @Test
    fun `test data loading`() {
        val testData = listOf("test1", "test2")
        `when`(repository.getData()).thenReturn(testData)

        val viewModel = MyViewModel(repository)
        viewModel.loadData()

        assertEquals(testData, viewModel.data.value)
    }
}

Использую:

  • JUnit для базовых тестов
  • Mockito для моков зависимостей
  • Truth/Kotest для ассертов
  • Coroutines Test для тестирования корутин
  • Espresso для UI тестов (хотя это уже не unit)