[rspec-users] mock.with(Hash) expects an Array ?
Francois Beausoleil
francois.beausoleil at gmail.com
Mon Jan 29 00:12:23 EST 2007
Hi all,
I looked at the open issues on the bug tracker, but couldn't find
anything related to this. I also searched the archives. And I can't
believe someone didn't hit on this before.
Here's my spec:
context "A project owner" do
controller_name :roles
setup do
controller.stub!(:current_user).and_return(@user = mock("user"))
controller.stub!(:current_project).and_return(@project = mock("project"))
@user.stub!(:role_on).and_return(Role.owner)
end
specify "can change the role of a user" do
@project.should_receive(:roles).and_return(roles_proxy =
mock("roles proxy"))
roles_proxy.should_receive(:find).with("17").and_return(role = mock("role"))
role.should_receive(:update_attributes!).with(:name =>
Role.developer).and_return(true)
role.stub!(:name).and_return(Role.developer)
post :update, :project_id => 41, :id => 17, :role => {:name =>
Role.developer}
response.body.should == Role.developer
end
end
And the failure:
'A project owner can change the role of a user' FAILED
Mock 'role' expected :update_attributes! with ([:name, "developer"])
but received it with ({"name"=>"developer"})
(eval):3:in `update_attributes!'
/home/francois/src/smrty2/config/../app/controllers/roles_controller.rb:11:in
`update'
./spec/controllers/roles_spec.rb:35:
Looks like the call to #with changed the Hash to an Array.
Can anyone else confirm this ? This is on 0.7.5.1.
Thanks !
--
François Beausoleil
http://blog.teksol.info/
http://piston.rubyforge.org/
More information about the rspec-users
mailing list