Ich benutze die strong_parameters
Juwel in meinen Controllern, aber ich habe eine harte Zeit zu verstehen, wie ich es testen würde.RSpec - Testen starker Parameter
Hier ist ein Beispiel für mein Setup
class UserController < ActionController::Base
include ActiveModel::ForbiddenAttributesProtection
def create
@user = User.new(user_params)
if @user.save
...
end
end
private
def user_params
params.require(:user).permit(:first_name, :last_name, :username, :email)
end
end
ich die user_params
Methode testen will, um sicherzustellen, dass es richtig bösartige Schlüssel/Wert-Paare Ausfiltern ist, kann aber nicht herausfinden, wie es zu tun. Hat jemand anderes das durchgemacht?
Unsere Testrichtlinie Tests für alle Funktionen explizit zu schreiben ist, zu uns zu erlauben, potentiell wechseln Sie Edelsteine / rollen Sie unsere eigenen später und wissen Sie immer noch, dass das System funktioniert. – Bryce
Sie können auch testen, ob Ihr Code, der in strong_parameters integriert ist, ordnungsgemäß funktioniert. Ich habe Felder, die beschreibbar/nicht beschreibbar sind, abhängig von Benutzerrollen/Berechtigungen, also muss ich testen, ob diese beiden Teile richtig integriert sind. – cpuguy83
Nachdem ich eine App von Rails 1.1 zu 3.2 genommen habe (und jetzt für 4.0 vorbereite), kann ich Ihnen versichern, dass das Testen von Rails sehr notwendig ist. Etwas, das in einer Version von Rails in einer Richtung funktioniert, kann das Verhalten in einer anderen Version ändern. Zum Beispiel klonte ich Activecord-Datensätze mit der 'clone'-Methode, aber irgendwo zwischen 3.0 und 3.2 entschieden sie, dass' dup' stattdessen diese Funktionalität bereitstellen würde ... und das etwas anders. Dies wurde nicht gut beworben, aber es wurde schnell von meinen Tests erfasst. – sockmonk