Код: Выделить всё
class MyViewModel(initialState: ViewState) : ViewModel() {
val state: StateFlow = MutableStateFlow(initialState)
val errorFlow: SharedFlow = MutableSharedFlow()
init {
performNetworkCall()
}
private fun performNetworkCall() = viewModelScope.launch {
Network.makeCall(
"/someEndpoint",
onSuccess = {
(state as MutableStateFlow).tryEmit()
},
onError = {
(errorFlow as MutableSharedFlow).tryEmit("network failure")
}
)
}
}
Однако я не понимаю, как наблюдать за этим выбросом из моего ViewModelUnitTest.
Я использую турбину Kotlin для проверки выбросов для моего состояния и общего доступа потоков, но я могу наблюдать только выбросы, которые происходят после того, как я вызовите viewModel.state.test или viewModel.errorFlow.test.
Поскольку я не могу ссылаться на viewModel.state или viewModel.errorFlow перед инициализацией ViewModel, как я могу написать тест для проверки того, что моя логика инициализации работает правильно и выдает ожидаемый результат на основе имитируемого поведения Network.makeCall - будь то новая эмиссия состояния< /код> или выброс errorFlow?
Подробнее здесь: https://stackoverflow.com/questions/692 ... ialization