ruby-on-rails - 尝试在 rspec 中传递嵌套参数时出现 ArgumentError

标签 ruby-on-rails ruby testing rspec rspec-rails

当我尝试执行以下行时

post :create, user: Fabricate.attributes_for(:user)

我收到此错误消息 ArgumentError: unknown keyword: user
这是我最初尝试运行的代码:

describe 'POST create' do
   context 'with valid input' do
     it 'creates the user' do
       post :create, user: Fabricate.attributes_for(:user)
       expect(User.count).to eq(1)
     end
   end
end

最佳答案

changes in Rails 5 之一是测试请求方法只接受关键字参数,而不是将任意哈希选项作为参数传递,这是 Rails 4 中的行为。

post :create, params: { user: Fabricate.attributes_for(:user) }

关于ruby-on-rails - 尝试在 rspec 中传递嵌套参数时出现 ArgumentError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43707853/

相关文章:

javascript - Ruby on Rails 7 - 有没有办法实现 js.erb 文件?

ruby-on-rails - 在 Devise 中以管理员身份销毁用户

ruby - ruby 中 'do .. end' 和 "{..}" block 的不同行为

Ruby:如何将数组的数组连接成一个数组

wcf - 异步 WCF Web 服务负载测试

jquery - 在rails中执行AJAX Post而不传递authenticity_token

ruby-on-rails - 用户为页面指定的 css

ruby-on-rails - 有没有办法涂干而结实的本金

unit-testing - tdd - 为第 3 方代码创建测试

python - 测试 python 备忘录装饰器