我有一个像这样的ViewModel:
class MyViewModel {
val title = MutableLiveData<String>()
val onTitleError: LiveData<Int?> = Transformations.map(title, this::validateTitle)
}
问题是,在单元测试期间执行Transformations.map
不会因title
值更改而触发。例如:
val viewModel = MyViewModel()
viewModel.title.value = "123"
Assert.assertEquals(viewModel.onTitleError.value, R.string.myError)
我正在将此规则用于LiveData测试:
@Rule
var liveDataRule: TestRule = InstantTaskExecutorRule()
[在仪器测试中执行或正常运行时,一切正常。
您需要observe
您的onTitleError
LiveData才能填充其value
。