2011-11-23 19 views
5

Animasyonlu etkinlik için birim testler yazıyorum. Animasyon, sonsuz süre ile (çekilebilen ekran) çekilebilen basit bir rotasyon rotasyonudur.Etkinlik animasyonu olduğunda Android birim test ediliyor

Birim testlerine başladığımda, her test animasyon bitene kadar bekler gibi görünüyor, bu yüzden onlar infinte yuvarlıyor, Süre 1'i ayarlıyorum, hepsi geçiyor, animasyonun çabuk bitmesine neden oluyor.

Bunu nasıl geçersiz kılabilirim, bu nedenle sınamalar animasyonun sona ermesini beklemiyor?

cevap

1

Animasyon dışındaki davranışları test etmeyi düşündüğünüzü farz ediyorum.

Muhtemelen animasyonu, test etmek istediğiniz kodun yolunun dışına taşımaktan büyük olasılıkla yararlanacaksınız. Bu, diğer kodun - animasyona bağlı olmayan kodun - Etkinlik dışı taşınması anlamına gelir. Etkinliğin dışında değilse, o zaman, en azından Etkinlik yaşam döngüsü yöntemlerinden (onCreate(), ...). Bu davranışı davranışını hiç çalıştırmadan kontrol edebilirsiniz. Daha da iyisi, Davranışı başlatmadan davranışı çalıştırmaktır (onCreate() öğesini çağırma).

Karşılaştığınız sorun, kodunuzu doğrudan bir çerçeve uzantı noktasına koyarsanız ne olacağının özel bir durumudur: kodunuz daha sonra çerçeveyle karışır ve sırayla dikkat etmediğiniz bir şey çalıştırdığınız takılırsınız. 'un nolu bakımını yaptığınız bölümü çalıştırmak için. Öyleyse yapma. Kodunuzu çerçeveye bağlı olmayan sınıflara koyun, ardından Android'i kodunuza bağlamak için çerçeve uzantı noktasını (bu durumda Etkinlik) kullanın. Etkinlik, kodunuzun olduğunu bilir; kodunuz Android'in mutsuzca cahil kalır. Şimdi senin animasyon gibi şeyler yoluna giremezsiniz.