0

更新アクションを介してユーザーを手動で更新することをテストしようとしています。

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 を介してユーザーを更新するリクエストを送信するにはどうすればよいですか?

4

1 に答える 1

0

「put」がどこで定義されているのかわかりません。メソッドなしのエラーが予想されます。put を定義する他の何かを含める必要があります。

いずれにせよ、Rack::Test::Methodsあなたのテストに含めてください、それはあなたが求めているものを提供するはずです:

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

  ...
end
于 2012-11-11T22:40:20.300 に答える