【问题标题】:ArgumentError when trying to pass nested parameters in rspec尝试在 rspec 中传递嵌套参数时出现 ArgumentError
【发布时间】:2017-04-30 15:06:41
【问题描述】:

当我尝试执行以下行时

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

【问题讨论】:

  • 不幸的是,StackOverflow markdown 解析器使用四个空格缩进而不是像 Github 上的围栏代码块 (```)。使用 (ctrl/command + k) 缩进代码块。

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-10
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多