Ответ
Да, писал 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)