Ich simuliere eine Anfrage von einem externen Dienst, der kein Echtheitstoken haben wird. Ich möchte, dass der Test fehlschlägt, wenn skip_before_action :verify_authenticity_token
fehlt.POST mit fehlenden authenticity_token in rspec rails Anfrage Test?
Wie mache ich das aus einer Rspec-Anforderungsspezifikation?
Momentan verwende ich post
wie unten, aber es wird gerne angenommen.
post endpoint, my_json_string, {'CONTENT_TYPE' => "application/json"}
Ab Rails 4.2. 5.1 und Rspec 3.4, funktioniert diese Technik gut. Ich vermute, dass dies der richtige Weg ist, um die Lösung zu implementieren. –
Das war wirklich hilfreich, danke. – Joseworks
Für Tests des CSRF-Schutzes muss möglicherweise [der 'raise_error'-Matcher] (https://www.relishapp.com/rspec/rspec-expectations/v/3-5/docs/built-in-matchers/raise- error-matcher): 'expect {post-Endpunkt, my_json_string} .to raise_error (ActionController :: InvalidAuthenticityToken)'. Ich dachte, ich sollte den Rückgabecode überprüfen. –