2013-04-05 138 views
3

我想單元測試一個使用Android DownloadManager服務的類,但我不確定如何去做。我是否應該使用DownloadManager服務,或者有什麼方法可以模擬它?我寧願沒有我的測試呼叫外部網絡服務器。是否有可用於此的現有測試庫?單元測試和Android DownloadManager

+1

嗨爲零,您是否找到任何針對DownloadManager單元測試的解決方案? – Andy 2017-02-07 06:32:39

回答

0
  1. 該解決方案使用Robolectric

一個重要的事情知道的是,下載管理器請求的計數開始於-1。所以,如果你入隊的請求,請求計數會是0

  • 模擬您的下載管理器對象
  • 編寫測試

    public void shouldEnqueueRequest() { 
    //... 
    
    //... 
    
    verify(downloadManager, times(1)).enqueue(anyObject()); 
    //Is the DownloadManager empty 
    assertThat(shadowOf(downloadManager).getRequestCount(), greaterThan(-1)); 
    //Get the request from the DownloadManager 
    ShadowRequest realRequest = shadowOf(shadowOf(downloadManager).getRequest(0)); 
    assertThat(realRequest, notNullValue()); 
    assertThat(realRequest.getDescription(), equalTo("Your description")); 
    assertThat(realRequest.getTitle(), equalTo(APP_NAME)); 
    }