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

时间:2019-12-24 10:46:50

标签: android unit-testing

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

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

我的问题是,有一种方法可以从存储库中调用的Web服务获取真实数据,还是我只是准备结果并断言其不为null;如下所示:

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

1 个答案:

答案 0 :(得分:1)

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