繁体   English   中英

如何在 viewModel 中测试从存储库返回 LiveData 值的方法

[英]How to test a method in viewModel which returns LiveData value from repository

在我的 ViewModel 中,我正在从我的存储库类中调用一个方法,该方法从 Web 服务返回一个 LiveData。 我的视图模型代码:

class MainViewModel @Inject constructor(val mainRepository: MainRepository) : ViewModel() {
   val source: LiveData<My_Result> = mainRepository.fetchApiresultFromClient(str_query)  
       .......... }

我的问题是有没有办法从存储库中调用的 web 服务中获取真实数据,或者我是否只准备结果并断言它不为空; 像下面这样:

when(mainrepository.fetchApiresultFromClient(any(String::class))).thenReturn(myPreparedLiveData<My_result>)

由于问题被标记为单元测试,恕我直言,期望来自 Web 服务的真实数据实际上并不属于单元测试的范围。 您可能会调用集成测试,但是,从单元测试的角度来看,您可能会考虑模拟来自调用 Web 服务的函数的响应,并验证是否使用您期望的正确参数调用了该方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM