2013-08-16 16 views
13

Czy ktoś miał jakieś testy jednostek losowych dla AsyncTaskLoaders w Robolectric? Próbowałem zmodyfikowaną wersję tego example for AsyncTask, ale nie wykazuje to samo zachowanie. W szczególności onLoadFinished nigdy nie jest wywoływany. Czy są jakieś użyteczne przykłady testowania ładowarek z Robolectric?Testowanie AsyncTaskLoaders z Robolectric

+1

Czy znalazłeś rozwiązanie? – Kuno

+0

Niestety nie. –

Odpowiedz

1

Nie używaj ładowarek. Nie są łatwe do przetestowania i są ściśle powiązane z Fragmentami i Aktywnościami, które ich używają. Zamiast tego używaj funkcji RxJava Observables dla swoich asynchronicznych przepływów danych. Możesz rozdzielić planowanie i przetestować je synchronicznie w testach jednostkowych. Jest o wiele czystszy i znacznie prostszy.

+0

czy masz jakieś przykłady udostępnienia? Szukam konkretnie części "rozdzielającej harmonogram". Czy robisz coś innego w swoim kodzie podczas subskrybowania jak wstrzyknięcie wspólnego harmonogramu? Czy jest też fajna metoda, która nakazuje Rxjavie wykonanie wszystkiego w określonym wątku? –

+0

Przechodzę w SchedulerFactory do klas, które go potrzebują, aw produkcji przekazuję asynchroniczne harmonogramy (io, newThread, itp.) Dla ich wywołań w metodach fabrycznych, podczas gdy w testach jednostkowych wszystkie wywołania zwracają bieżący wątek dla wszystkich połączenia. Możesz przekazać terminarz do obserwowalnego. –

0

Właśnie napisali sposób mam go do pracy w tym bilecie stosu: Testing a CursorLoader with Robolectric & Mockito

Polega ona na pisanie kilka dodatkowych klas cień. Mogę wkleić poprawkę tutaj na żądanie, ale nie byłem pewien, co konwencja była dla duplikat odpowiedzi.