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 PagingSource i RemoteMediator, 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