2012-11-18 10 views
10

Qual è il modo migliore di testare un'applicazione con lo Google Drive API (Java client)?Come testare un'applicazione con l'API di Google Drive (client Java)

Sembra che le applicazioni scritte dipendono fortemente la classe Drive, ma a corto di o ...

  • la creazione di una realtà vasta finto (che, a sua volta, avrebbe probabilmente bisogno di essere testati), o
  • scrittura di un test di integrazione dipende dal servizio di unità effettiva

... come poteva una tale domanda da testare?

utilizzando gli schemi di finte come Mockito sono un po 'noiosa con l'API unità (client Java), in quanto l'utilizzo del client di unità Java si basano sul fare così tante chiamate concatenate (per esempio, dalla documentazione):

Drive service = getDriveService(req, resp); 
service.files().get(fileId).execute(); 
+0

Direi che è meglio fare test di integrazione in questo caso, dal momento che non si può facilmente prendere in giro la libreria. – Hiro2k

risposta

3

non dovrebbe essere che noiosa in Mockito infatti, con l'aiuto di profonda stub:

Drive mockDrive = mock(Drive.class, RETURNS_DEEP_STUBS); 

.... 
// stubbing 
when(service.files().get(anyString()).execute()).thenReturn(something); 

// verify 
verify(service.files().get("Some Field ID").execute(); 

imparare di più da documentation of Mockito

Va bene se si scrive test di integrazione per testare il servizio effettivo di Drive, ma semplicemente non può sostituire il test dell'unità.

+1

+1 se volevo dormire molto felicemente di notte, avrei test di unità e di integrazione. –

+0

@AliAfshar se voglio dormire molto felicemente di notte, mi piacerebbe avere una moglie bollente (lol) –

+0

Non riesco ancora a far funzionare tutto, dato che ottengo 'ClassCastException (org.mockito.internal.creation.jmock.ClassImposterizer $ ClassWithSuperclassToWorkAroundCglibBug $$ EnhancerByMockitoWithCGLIB $$ 4603175d non può essere lanciato su java.lang.Void) '. Tuttavia, penso che la tua risposta sia effettivamente corretta, e l'errore che sto vedendo è un bug in Mockito. Grazie! –

Problemi correlati