Używam klejnotu strong_parameters
w moich kontrolerach, ale ciężko mi zrozumieć, jak go przetestować.RSpec - Testowanie mocnych parametrów
Oto przykład z mojej konfiguracji
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
Chcę przetestować metodę user_params
, aby upewnić się, że jest prawidłowo odfiltrowanie par klucz/wartość szkodliwe, ale nie można dowiedzieć się, jak to zrobić. Czy ktoś jeszcze przez to przeszedł?
Nasza polityka test jest jawnie pisać testy dla wszystkich funkcji, aby umożliwić nam potencjalnie przełączaj klejnoty/zwiń nasze własne później i nadal wiedz, że system działa. – Bryce
Możesz również sprawdzić, czy twój kod integrujący się z parametrem strong_parametres działa poprawnie. Mam pola, które można zapisywać/nie można zapisywać w zależności od ról użytkownika/uprawnień, więc muszę przetestować, czy te dwa elementy są poprawnie zintegrowane. – cpuguy83
Po pobraniu aplikacji z Rails 1.1 do 3.2 (a teraz przygotowując się do 4.0), mogę zapewnić, że testowanie Railsów jest bardzo potrzebne. Coś, co działa w jedną stronę w jednej wersji Railsów, może zmienić zachowanie w innej wersji. Na przykład kiedyś sklonowałem rekordy rekordów aktywnych za pomocą metody 'clone', ale gdzieś pomiędzy wersją 3.0 a 3.2 zdecydowano, że' dup' zapewni tę funkcję zamiast ... i zrobi to nieco inaczej. To nie było dobrze reklamowane, ale szybko zostały przechwycone przez moje testy. – sockmonk