2013-04-05 3 views
3

Je voudrais tester un module qui utilise le service Android DownloadManager, mais je ne sais pas trop comment le faire. Dois-je réellement utiliser le service DownloadManager ou y a-t-il un moyen de le mocker? Je préférerais ne pas avoir mon appel de test sur un serveur web externe. Existe-t-il une bibliothèque de tests existante que je peux utiliser pour cela?Tests unitaires et Android DownloadManager

+1

Salut nil, Avez-vous trouvé une solution pour le test unitaire de DownloadManager? – Andy

Répondre

0
  1. Cette solution utilisation Robolectric

Une chose importante à savoir est que le nombre de demandes de téléchargement Manager démarre à -1. Donc, si vous ENQUEUE une demande, le nombre de demande va être 0.

  1. Mock votre objet de DownloadManager
  2. Écrivez votre test

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