Przetestuj klasy ActiveModel :: Serializer za pomocą Rspec
Biorąc pod uwagę następującą klasę
ActiveModel :: Serializer:
class SampleSerializer < ActiveModel::Serializer
attributes :id, :name
end
Jak można to zweryfikować za pomocą
RSpec?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
4 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Założenia
>
Ta odpowiedź zakłada, że masz zainstalowane i skonfigurowane klejnoty , i .
Ta odpowiedź również zakłada, że zdefiniowano fabrykę dla zasobu .
Specyfikacja serializatora
>
Dla aktualnej wersji (0.10.0.rc3)
active_model_serializers
https://github.com/rails-api/a ... izers
w chwili pisania tego tekstu klasy nie otrzymują kodu i są zamiast tego opakowane w klasę adaptera. Aby uzyskać serializację modelu opakowanego w wystąpienie serializatora, musisz utworzyć instancję adaptera:
Instancja adaptera odbiera metodę i zwraca serializację modelu.
Oczekiwania można następnie wyzwolić w zwróconym formacie JSON.
Podczas analizowania odpowiedzi JSON należy wziąć pod uwagę konfigurację adaptera:
subject { JSON.parse(@serialization.to_json)['sample'] }
Anonimowy użytkownik
Potwierdzenie od:
active_model_serializers
https://github.com/rails-api/a ... izers
istnieje dużo prostszy sposób, po prostu wywołując w serializatorze:
Anonimowy użytkownik
Potwierdzenie od:
Zwróć uwagę na użycie : zapewnia to, że nie ma innych kluczy niż te, które określisz. Użycie spowoduje, że testy nie zakończą się niepowodzeniem, jeśli zostaną uwzględnione nieoczekiwane atrybuty. To dobrze się skaluje, gdy aktualizujesz atrybuty, ale nie aktualizuj testów, ponieważ test zgłosi błąd i zmusi Cię do aktualizowania wszystkiego.
Wyjątek dla kluczy testowych zostanie zrobiony tylko wtedy, gdy chcesz przetestować niestandardowe metody dodane do danego serializatora, w takim przypadku bardzo polecam napisanie testu dla zwracanych wartości, na które ta metoda ma wpływ.
Aktualizacja
>
Aby przetestować relację, będziesz musiał nieco bardziej dostosować serializator. Unikam tej konfiguracji dla prostych serializatorów, ale ta zmodyfikowana konfiguracja pomoże ci sprawdzić linki, relacje itp.
Anonimowy użytkownik
Potwierdzenie od:
Serializator kategorii:
RSpec: