簡體   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