Ho una libreria Java che utilizza alcune cose dalle API di Android. Mi piacerebbe usare Mockito per scrivere test unitari per questa libreria.Android: unità di test delle applicazioni Android con Robolectric e Mockito
C'è un modo per andare su questo?
Mockito non giocare piacevole sulla Dalvik VM, vedi questo post: Using Mockito with Android virtual machine
UPDATE:
Dato questo post ho scoperto Robolectric, e ho avuto l'opportunità di lavorare da Pivotal Labs e apportare alcuni piccoli contributi a questa libreria. Vorrei raccomandare l'utilizzo di questo oltre il framework di test Android/mockito. Inoltre, sei libero di usare Robolectric AND Mockito, ma gli oggetti ombra in Robolectric rendono Mockito non necessario per la maggior parte dei casi d'uso.
Il problema con il tentativo di test di unità Android è che la libreria Android che si costruisce su ogni metodo ha spense a uno un'eccezione stub, o tornare null. Se vuoi testare la tua app e desideri il comportamento di Android, sei fuori di sorte, a meno che non usi Robolectric che riscrive il codice byte al volo quando le classi si caricano e inietta un oggetto ombra che simula il comportamento.
UPDATE 2:
E 'stato un po' e le cose sono cambiate. Molte delle classi Shadow in Robolectric sono state sostituite con le vere classi Android. I veri e propri giare Android sono ora usati e Robolectric carica solo classi Shadow per un insieme di cose molto più piccolo. Questo è ancora più un motivo per usare Robolectric per i tuoi test su Android.
Uso il costrutto-spia di Mockito in combinazione con i costruttori forniti da Robolectric. In questo modo posso eseguire il deridere parziale dei componenti di Android quando necessario, ad es. FooActivity foo = spy (Robolectric.buildActivity (FooActivity.class) .get()); doReturn (mock) .when (foo) .getSomething(); – Alix