我需要一些关于在 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