2016-03-30 70 views
1

Robolectric runner ile bir test yapıyorum.Android'de Roboelectric'de arka plan iş parçacığı üzerinde api nasıl çağrılır?

if (Looper.getMainLooper().getThread() == java.lang.Thread.currentThread()) { 
    new IllegalStateException("Method called on the UI thread"); 
} 

Robolectric testi bu durum oluşturur ve bunu istemiyorum: Test edilen kod ana iş parçacığı üzerinde yürütülen değil doğrular. Kodu bir Robolectric.getBackgroundScheduler()'dan çalıştırmayı denedim, ancak yine de istisna alıyorum.

Nasıl benim test farklı bir iş parçacığı çalışabilir?

cevap

0

test çoklu kodunda ana düşünce tek bir iş parçacığı üzerinde kontrollü bir şekilde çalıştırmak yapmaktır.

Ben ne yapardım:

  1. Taşı kontrol kodu bazı sınıf yardımcı için
  2. bunu enjekte ve test bu çözümün

Artılar altında alay:

  1. Sorununuzu çözecek
  2. Dupl kaldıracak ication ve SRP yakın taşımak (tek sınıf sorumluluk ilkesi)

Minuses: o yöntemle

  • arkasına işlevselliği gizler beri

    1. O öldürürsün Size daha fazla esneklik verecek uygun sayarak

    Başarıyı gerek!