Suspend Function w Android

 Dobrze Cię widzieć w drugim dniu świątecznej akcji "Rekrutacja bez stresu". Dzisiejsze pytanie jest następujące:

Jak napisać test jednostkowy dla suspend function?

Poziom: Regular

Założenia

Book:
Book

BookRepository:
Book Repository

GetFavouriteBooksUseCase:
Get Favourite Books Use Case

Zadanie

Napisz test jednostkowy dla klasy GetFavouriteBooksUseCase sprawdzający poprawność wywoływanej metody invoke(). Możesz użyć dowolnych bibliotek.

Omówienie tego zadania otrzymasz w kolejnym mailu.

Znasz odpowiedź?
Prześlij mi ją odpowiadając na tego maila, aby zdobyć punkty w zabawie!


Teraz pora na wyjaśnienie poprzedniego pytania:

Jakie zastosowanie ma data class? Czym różni się od class?

Poziom: Junior

Jakie zastosowanie ma data class?

Data class używa się (jak sama nazwa wskazuje) do przechowywania danych. Najczęściej tego typu klasa nie zawiera żadnych dodatkowych metod ani zmiennych po za tymi zadeklarowanymi w konstruktorze.

Data class

Czym data class różni się od class?

Różnica polega na tym, że w przypadku data class niektóre metody są generowane automatycznie. Są to:

  • equals
  • hashCode
  • toString
  • copy

Dzięki temu zostaje zredukowana znaczna ilość nadmiarowego kodu. W przypadku class, te metody muszą być nadpisane ręcznie.

O tym warto pamiętać

  • konstruktor data class musi zawierać przynajmniej jeden argument
  • argumenty konstruktora muszą być zadeklarowane jako val lub var
  • data class nie może być klasą abstrakcyjną (abstract), wewnętrzną (inner), otwartą (open), ani sealed
  • po data class nie można dziedziczyć (nie można łączyć słowa kluczowego data z open)

Dobre praktyki

Niemutowane argumenty
Korzystaj z niemutowanych argumentów (val) wewnątrz data class. Dzięki temu masz pewność, że podczas działania programu date nie zostaną przypadkowo zmienione.

Tworzenie obiektu
W przypadku tworzenia obiektu z wieloma argumentami korzystaj z named arguments. Dzięki temu znacząco zwiększy się czytelność takiego fragmentu kodu.

Named arguments

Zmiana stanu obiektu
Do zmiany stanu wcześniej stworzonego obiektu używaj metody copy. Jej działanie polega na zmienieniu tylko wskazanych parametrów przy zachowaniu stanu poprzednich.

Copy


Regulamin

Szczegółowy opis całej akcji "Rekrutacja bez stresu" wraz z informacją o sposobie zdobywania punktów znajduje się pod poniższym linkiem:
[Regulamin]

Dzięki wielkie za przeczytanie tego maila do końca i udział w całym wydarzeniu. Bardzo się cieszę, że jesteś z nami i chcesz rozwijać swoje umiejętności tworzenia aplikacji na Androida.


Zobacz też na stronę naszych partnerów:

Komentarze

Popularne posty z tego bloga

Nazwa i nowości w ich hostingu

CodeSandbox plans are changing!

Copymatic Gifts