Active Model Serializer, der testet, welcher Serializer zum Rendern verwendet wird

7

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.

    
Charlie 28.02.2014, 14:35
quelle

4 Antworten

3

Sie können das versuchen. Ich gehe davon aus, dass Sie factory_girl verwenden. Sie können den anderen Test schreiben, indem Sie einen anderen Benutzer für current_user

zurückgeben %Vor%     
usha 28.02.2014, 17:04
quelle
14

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.

    
Dan Draper 20.10.2014 03:06
quelle
1

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%     
leandroico 15.05.2017 21:29
quelle