簡體   English   中英

使用Retrofit2進行Android Unit測試API調用

[英]Android Unit test API calls with Retrofit2

我沒有在Android上做任何測試,所以如果這似乎是一個愚蠢的問題,請耐心等待。 我正在開發一個應用程序,它通過一個安靜的API服務進行大量的網絡調用。 為了進行網絡調用,我正在使用Retrofit2RxJava

如果這些調用有效,那么測試最佳實踐/框架是什么? 我已經開始閱讀使用Junit4Mockito進行測試的Google Codelab,但我不想在UI中點擊任何內容來啟動測試,只是檢查支持與否的不同API版本。

這里有一些我正在使用的步驟:

  • 使用mockito和junit4,肯定:)
  • 我避免了這些案例的UI測試
  • 將您的改裝Api作為參數傳遞給您要測試的類
  • 在測試中創建一個模擬改裝api,將這個作為參數傳遞給你,這樣你就可以選擇你想要的“Api”返回例如對象或錯誤(參見Mockito.when()
  • 使用RxJava的TestSubscriber來測試方法,例如Observable<Location> getLocationFromApi()
  • 避免在測試類中使用線程(例如.observeOn(mainThread()) )。 如果不可避免使用awaitTerminalEvents在TestSubscriber。 如果沒有終端甚至重新考慮您的測試

一般提示:

  • 嘗試模塊化你的代碼,這樣每個類的功能都很少 - >更容易測試。
  • 要有耐心,不要指望在一周內編寫5%的代碼測試:)無論團隊規模如何,這都是一個緩慢的過程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM