使用Koin和Kotlin协同程序在Android中测试ViewModel

时间:2019-09-29 09:14:41

标签: android kotlin kotlin-coroutines koin

我开始使用Koin,我需要测试一个ViewModel,该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 个答案:

答案 0 :(得分:1)

您可以利用runBlocking { }块运行挂起的功能以进行测试