单元测试和Android DownloadManager

时间:2013-04-05 02:05:10

标签: android testing

我想对使用Android DownloadManager服务的类进行单元测试,但我不知道如何去做。我应该实际使用DownloadManager服务还是有某种方法可以模拟它?我宁愿不让我的测试呼叫外部Web服务器。我可以使用现有的测试库吗?

1 个答案:

答案 0 :(得分:0)

  1. 此解决方案使用Robolectric
  2. 要知道的一件重要事情是下载管理器请求的计数从-1开始。因此,如果您将请求排入队列,请求计数将为0。

    1. 模拟您的DownloadManager对象
    2. 编写测试

      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));
      }