小编Mar*_*pez的帖子

当使用返回流的存储库对视图模型进行单元测试时,将其转换为实时数据时会发生错误

我需要一些关于在 android 中编写单元测试的帮助,这些测试与视图模型、实时数据和流机制以及调度有关。

首先,我正在编写单元测试,而不是仪器测试。

实际上,我正在为一个 android 应用程序创建一个单元测试,用于测试使用存储库从互联网获取一些数据的 ViewModel。

我使用的视图模型的代码是这样的:

class ViewModel(private var repository: Repository? = Repository()) :
  androidx.lifecycle.ViewModel() {

  val data: LiveData<Result<Item>> = repository!!.remoteData.asLiveData()
}
Run Code Online (Sandbox Code Playgroud)

单元测试代码如下:

import junit.framework.TestCase
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.test.TestCoroutineDispatcher
import kotlinx.coroutines.test.resetMain
import kotlinx.coroutines.test.runBlockingTest
import kotlinx.coroutines.test.setMain
import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito.`when`
import org.mockito.Mockito.mock
import org.mockito.junit.MockitoJUnitRunner

@ExperimentalCoroutinesApi
@RunWith(MockitoJUnitRunner::class)
class ViewModelTest : TestCase() {
    private val testDispatcher = TestCoroutineDispatcher()
    private lateinit var repository: Repository
    private lateinit var viewModel: ViewModel …
Run Code Online (Sandbox Code Playgroud)

unit-testing android-livedata android-viewmodel kotlin-flow android-unit-testing

5
推荐指数
1
解决办法
932
查看次数