[rspec-users] Rspecing this simple controller it is driving me mad...

roberto belardo backslash451 at yahoo.it
Sun Apr 6 07:20:53 EDT 2008


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.
http://it.docs.yahoo.com/mail/overview/index.html


More information about the rspec-users mailing list