Hi all,
here i am again with this stupid problem in rspecing
this controller action:
CommentsController
def create
@comment = Comment.new(params[:comment])
@user = User.find(params[:user_id])
[16] @comment.author = @user
@comment.save
end
CommentsController Spec
describe CommentsController, “handling POST /comments”
do
before(:each) do
@user = mock_model(User, :to_param => “2”)
@comment = mock_model(Comment, :to_param => “1”,
:author => @user)
User.should_receive(:find).at_least(1).times.and_return(@user)
Comment.stub!(:new).and_return(@comment)
end
def post_with_successful_save
@comment.should_receive(:save).and_return(true)
[34]post :create, :user_id => @user_id, :comment => {}
end
it “should create a new comment” do
Comment.should_receive(:new).with({
}).and_return(@comment)
[47]post_with_successful_save
@comment.author.should be(@user)
end
end
The frustrating error Rspec gave to me is this:
Spec::Mocks::MockExpectationError in
‘CommentsController handling POST /comments should
create a new comment’
Mock ‘Comment_1002’ received unexpected message
:author= with (#<User:0x…fdb9c1a8e
@name=“User_1000”>)
comments_controller.rb:16:in create' comments_controller_spec.rb:34:in
post_with_successful_save’
comments_controller_spec.rb:47:
I have tried to google for something like this but i
resolved nothing. Could someone help me understanding
my fault?
Thanks in advance,
Roberto.
Inviato da Yahoo! Mail.
La casella di posta intelligente.