2011-11-23 15 views
5

Sto scrivendo un test di unità per attività con animazione. L'animazione è una semplice rotazione di spinner disegnabile con durata infinita (splash screen).Test di unità Android quando l'attività ha animazione

Quando avvio i test di unità, ogni test sembra attendere fino al termine dell'animazione, quindi si blocca infinte. Quando si imposta la durata su 1, tutto passa, perché l'animazione termina rapidamente.

Come posso eseguire l'override, quindi i test non attendono che l'animazione termini?

risposta

1

Presumo che si intende testare un comportamento diverso dall'animazione.

Probabilmente si trarrà il massimo vantaggio dallo spostamento dell'animazione dal percorso del codice che si desidera testare. Ciò significa spostare l'altro codice - codice che non dipende dall'animazione - fuori dall'attività. Se non fuori dall'Attività, quindi, almeno al di fuori dei metodi del ciclo di vita dell'Attività (onCreate(), ...). È quindi possibile verificare questo comportamento senza eseguire il comportamento. Ancora meglio sarebbe eseguire il comportamento senza avviare l'attività (non chiamare onCreate()).

Il problema riscontrato è un caso particolare di ciò che accade quando si mette il codice direttamente in un punto di estensione quadro: il codice viene poi mescolata con il quadro e ti trovi in ​​difficoltà in esecuzione qualcosa che non si cura di, al fine per eseguire la parte che si presta a do. Quindi non farlo. Metti il ​​tuo codice in classi che non dipendono dal framework, quindi usa il punto di estensione del framework (l'attività in questo caso) per connettere Android al tuo codice. L'attività sa che il tuo codice esiste; il tuo codice rimane beatamente all'oscuro di Android. Ora cose come la tua animazione non possono essere d'intralcio a.

Problemi correlati