@OptIn(ExperimentalCoroutinesApi::class)
@Test
fun `view model test`() = runTest {
val employees = EmployeeResponse(listOf())
`when`(employeeRepo.getEmployees()).thenReturn(employees)
`when`(employeeMapper.mapToState(anyList())).thenReturn(emptyList())
val testDispatcher = StandardTestDispatcher(testScheduler)
Dispatchers.setMain(testDispatcher)
viewModel = EmployeeViewModel(employeeRepo, employeeMapper)
viewModel.getEmployees()
advanceUntilIdle()
Assert.assertTrue(viewModel.uiState.value is EmployeeViewModel.EmployeeState.Success)
verify(employeeRepo, times(1)).getEmployees()
Dispatchers.resetMain()
}
Утверждение не выполнено, поскольку оператор утверждения выполняется до выполнения _uiState. Как это исправить?
Просмотр кода модели ниже
fun getEmployees() {
val errorHandler = CoroutineExceptionHandler { _, error ->
handleError(error)
}
viewModelScope.launch(errorHandler) {
val employees = withContext(Dispatchers.IO) {
employeeRepo.getEmployees()
}
_uiState.value = EmployeeState.Success(employeeMapper.mapToState(employees.employees))
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... -unit-test
Что не так с этим модульным тестом? ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Типизированный модульным тестом HttpClient с Microsoft.Extensions.Http.Resilience
Anonymous » » в форуме C# - 0 Ответы
- 29 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему мой код не удаляет zip-файл, созданный моим модульным тестом? [дубликат]
Anonymous » » в форуме JAVA - 0 Ответы
- 21 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Издевательство над модульным тестом Python – динамическая оценка переменной модуля
Anonymous » » в форуме Python - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-