ruby-on-rails - RSpec - 测试强参数

标签 ruby-on-rails ruby-on-rails-3 rspec strong-parameters

我正在使用 strong_parameters gem 在我的 Controller 中,但我很难理解我将如何测试它。

这是我的设置示例

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

我想测试user_params确保正确过滤掉恶意键/值对的方法,但无法弄清楚如何去做。有没有其他人经历过这个?

最佳答案

您可以将 params 散列 stub 为

params = ActionController::Parameters.new(your_hash)

这是你的 URL 参数在你的 Controller 中被转换成的类,它为你提供了 require 和 permit 方法。

我个人将功能提取到一个新类中来处理授权策略。

关于ruby-on-rails - RSpec - 测试强参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16574509/

相关文章:

ios - Rails 4 iOS 身份验证和授权

ruby-on-rails - 从设计 "User does not respond to ' 设计方法中获取错误“运行 "rails generate devise:install"时

ruby-on-rails - 设计忘记密码不起作用

ruby - 当使用 Javascript 加载内容时,如何使用 Nokogiri 解析页面?

ruby-on-rails - Git:在推送到本地或远程主机之前强制测试

ruby-on-rails - 比较 rspec 自定义 ActiveRecord::RecordInvalid 错误消息

ruby-on-rails - Rails 网页上的实时记录器?

ruby-on-rails - Rails 窗体 : how to store two text_fields in one array

ruby-on-rails - 如何在 Rails 中指定环境依赖性?

ruby-on-rails - 未初始化的常量 Capybara