У меня есть спецификация контроллера, и я получаю следующее неудавшееся ожидание:
Failure/Error: put :update, :id => login_user.id, :user => valid_attributes
#<User:0xbd030bc> received :update_attributes with unexpected arguments
expected: ({:name=>"changed name", :email=>"changed@mail.com", :password=>"secret", :password_confirmation=>"secret"})
got: ({"name"=>"Test user", "email"=>"user@test.com", "password"=>"secret", "password_confirmation"=>"secret"})
И для меня это выглядит так, будто я передаю "name" => "Test User"
и ожидаю :name => "test user"
моя спецификация выглядит так:
describe 'with valid parameters' do
it 'updates the user' do
login_user = User.create!(valid_attributes)
controller.stub(:current_user).and_return(login_user)
User.any_instance.
should_receive(:update_attributes).
with(valid_attributes.merge(:email => "changed@mail.com",:name=>"changed name"))
put :update, :id => login_user.id, :user => valid_attributes
end
end
и у меня есть что-то вроде этого для моих действительных атрибутов:
def valid_attributes
{
:name => "Test user",
:email=> "user@test.com",
:password => "secret",
:password_confirmation => "secret"
}
end
, так что не так с моими параметрами, какие-либо предложения?
Я использую Rails 3.0.5 с rspec 2.6.0 ...