我想对使用Android DownloadManager服务的类进行单元测试,但我不知道如何去做。我应该实际使用DownloadManager服务还是有某种方法可以模拟它?我宁愿不让我的测试呼叫外部Web服务器。我可以使用现有的测试库吗?
答案 0 :(得分:0)
要知道的一件重要事情是下载管理器请求的计数从-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));
}