Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Тестирование ViewModel в Android с сопрограммами Koin и Kotlin

Автор вопроса: nolomanОтветов: 1

Я начал использовать Koin, и мне нужно протестировать ViewModel, который просит репозиторий получить файл из внутренней памяти телефона.

Когда я устанавливаю тест ViewModel, я делаю:

@Before
    fun setup() {
        startKoin {
            modules(dataModule)
        }
        declareMock<Repository> {
            fakeAccount = moshiAccountAdapter.fromJson(json)
            whenever(this.getAccount()).thenReturn(fakeAccount)
        }
    }

но метод getAccount репозитория - suspend fun getAccount(): Account?, поэтому в классе ViewModelTest появляется сообщение suspend function getAccount should be called only from a coroutine or from another suspending function.

Заранее спасибо!

androidkotlinkotlin-coroutineskoin

Ответы

Ответ 1 · рейтинг 1 · Kuba Pawłowski

Вы можете использовать блок runBlocking { } для запуска приостановленных функций в тестовых целях.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы