2013-09-04 11 views
10

Mam kilka próśb, które robię z Android Volley. Ponieważ słuchacze robią takie rzeczy jak przekształcanie odpowiedzi JSON w obiekty, chciałbym przetestować je, aby upewnić się, że robią to, co trzeba. Chodzi o to, że nie jestem bardzo zajęty, jak wykonywać testy jednostkowe. Mam Robolectric z konfiguracją JUnit, ale każda pomoc będzie doceniona. W jaki sposób mam zamiar skonfigurować mój test, aby przetestować obiekt Listener przekazany do żądania?Android-volley, jak test jednostkowy przeszedł w Słuchacza

+0

Znajdź sposób na pozorowanie menedżera żądań, dzięki czemu możesz przetestować główną klasę żądania, przekazując jej zawartość sterowaną statycznie. Jestem dokładnie w tym samym miejscu i mam nadzieję, że znajdziemy rozwiązanie w tym tygodniu. – slott

+0

Jeśli odniesiesz sukces, czy mógłbyś napisać tutaj? Mimo że ten projekt się skończył, chciałbym go poznać na przyszłość. – s73v3r

Odpowiedz

2

Wystarczy spojrzeć na CacheDispatcher:

 Response<?> response = request.parseNetworkResponse(
       new NetworkResponse(entry.data, entry.responseHeaders)); 

To gdzie odpowiedź żądanie jest tworzony przy użyciu metody abstrakcyjne parseNetworkResponse (w przypadku, które zostały wdrożone go), a następnie:

mDelivery.postResponse(request, response); 

, który faktycznie odpala słuchaczy, jeśli zagłębisz się w kod. Reszta rzeczy jest związana z wątkami. Poleciłbym wdrożenie prostej procedury testowania, która pobiera statyczną NetworkResponse i wywołuje postResponse mDelivery.

To tak naprawdę oznacza, że ​​możesz nie iść tą drogą - wystarczy sprawdzić, która metoda (Response.success lub Response.error) została wywołana - to twój pierwszy test jednostkowy. Po drugie, po prostu przetestuj swoich słuchaczy.

+0

Zapomniałem to podać, ale nie ma potrzeby sprawdzania, czy ten detektor lub errorListener zostały wywołane w przypadku prawidłowego użycia metod Response.success/error, zgodnie z zasadami testowania jednostkowego. Testy jednostkowe samego modułu siatkówki powinny wykonać tę pracę. –

Powiązane problemy