Ich verwende aktive Modell-Serializer, um JSON-Antworten von einem Rails-Controller zu rendern.
Ich habe eine Controller-Aktion wie folgt:
%Vor%Ich möchte testen können, welcher Serializer in meinen Rspec-Controller-Tests verwendet wurde. Ist es möglich, einen Verweis auf den Serialisierer aus den Tests zu erhalten?
UPDATE:
Ich denke nicht, dass dies eine korrekte Verwendung des Serialisierers ist. Ich habe jetzt Logik im Serialisierer selbst, um Attribute bedingt einzuschließen. Der Controller sollte sich nicht wirklich darum kümmern, welcher Serializer verwendet werden soll.
Es ist eine Weile her, seit jemand geantwortet hat, aber für den Fall, dass zukünftige Googler das finden, mag ich den folgenden Ansatz:
%Vor%Dann können Sie in Ihren Tests Folgendes tun:
%Vor%Beachten Sie, dass ich den Matcher 'serialize' nicht aufgerufen habe, da shofaa bereits einen Matcher dieses Namens definiert.
Ich habe was Knightstick oben gemacht und es ein wenig verbessert, wie zum Beispiel die Fehlermeldung und indem ich es hinzugefügt habe Fähigkeit, sowohl eine einzelne Ressource als auch eine Ressourcensammlung zu verarbeiten (Ich verwende das Juwel "active_model_serializers", Version 0.10.0).
%Vor%Tags und Links ruby-on-rails json rspec active-model-serializers