Testowanie implementacji stronicowania (wyświetlenia)

Pojęcia i implementacja w Jetpack Compose

Wdrażanie biblioteki Paging w aplikacji powinno być połączone z solidną strategią testowania. Powinieneś przetestować komponenty wczytywania danych, takie jak PagingSourceRemoteMediator, aby mieć pewność, że działają zgodnie z oczekiwaniami. Warto też napisać testy kompleksowe, aby sprawdzić, czy wszystkie komponenty implementacji biblioteki Paging działają prawidłowo i nie powodują nieoczekiwanych efektów ubocznych.

Z tego przewodnika dowiesz się, jak testować bibliotekę Paging w warstwie danych aplikacji oraz jak pisać testy kompleksowe dla całej implementacji biblioteki Paging.

Testy warstwy danych

Napisz testy jednostkowe dla komponentów w warstwie danych, aby mieć pewność, że prawidłowo wczytują dane ze źródeł danych. Dostarcz fałszywe wersje zależności, aby sprawdzić, czy testowane komponenty działają prawidłowo w izolacji. Jednym z komponentów, które musisz przetestować w warstwie repozytorium, jest RemoteMediator.

RemoteMediator testów

Celem RemoteMediatortestów jednostkowych jest sprawdzenie, czy load()funkcja zwraca prawidłową wartość MediatorResult. Testy efektów ubocznych, takich jak wstawianie danych do bazy danych, lepiej nadają się do testów integracyjnych.

Pierwszym krokiem jest określenie zależności, których wymaga Twoja RemoteMediatorimplementacja. Poniższy przykład pokazuje implementację RemoteMediator, która wymaga bazy danych Room, interfejsu Retrofit i ciągu wyszukiwania:

Java (RxJava)

public class PageKeyedRemoteMediator
  extends RxRemoteMediator<Integer, RedditPost> {

  @NonNull
  private RedditDb db;
  @NonNull
  private RedditPostDao postDao;
  @NonNull
  private