【问题标题】:Rails: test update action put requestRails:测试更新操作放置请求
【发布时间】:2012-11-11 18:36:50
【问题描述】:

我正在尝试通过更新操作手动更新用户。

我在 spec/requests/user_request_spec.rb 中尝试了以下代码行:

user = create(:user, username: "username", password: "secret", password_confirmation: "secret") #Factory Girl
attr = { username: "newusername" }
put :update, :id => user.id, :user => attr

我收到以下错误:

Failure/Error: put :update, :id => user.id, :user => attr
ArgumentError:
  bad argument (expected URI object or URI string)
# ./spec/requests/users_request_spec.rb:55:in `block (3 levels) in <top (required)>'

如何通过 rspec 发送更新用户的请求?

【问题讨论】:

标签: ruby-on-rails-3 rspec request action put


【解决方案1】:

我不确定 'put' 是在哪里定义的,我预计会出现 no method 错误。您必须包含定义 put 的其他内容。

无论如何,在您的测试中包含Rack::Test::Methods,它应该提供您所追求的:

describe Foo do
  include Rack::Test::Methods # provides get, post, put, etc

  ...
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多