Тестирование ViewModel в Android с сопрограммами Koin и Kotlin - PullRequest
0 голосов
/ 29 сентября 2019

Я начал использовать 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.

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

1 Ответ

1 голос
/ 29 сентября 2019

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

...