Everything seemed so fine, but when i tried to investigate a little i discovered this tremendous behaviour of the spec:
------------------------------- CommentsController def create @comment = Comment.new(params[:comment]) @user = User.find(params[:user_id]) @comment.author = 'foooooobar' @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) @comment.stub!(:author=) end def post_with_successful_save @comment.should_receive(:save).and_return(true) @comment.should_receive(:author=) post :create, :user_id => @user_id, :comment => {} end it "should create a new comment" do Comment.should_receive(:new).with({}).and_return(@comment) post_with_successful_save @comment.author.should be(@user) end end ------------------------------- Autotest: ... 0 failures How can the spec pass if i test that @comment.author should be @user but in the controller i set a fooooobar string in the @comment.author? Better question: wich is the right way to test that create action to be sure, it will set the author of the comment? --- Jarkko Laine <[EMAIL PROTECTED]> ha scritto: ... > Short answer: you haven't stubbed the author= method > for the comment > mock, only author. > > A bit longer answer: Are you sure you can trust the > user to only > submit valid user ids? With your current code, > anyone can change the > user_id parameter in the call and fake any user id > she wants. This > might be intentional (if there are only admin users > in your app), just > pointing it out. You can also simplify your action > by just saying > @user.comments.create(params[:comment]) once you > have the user fetched. > > Cheers, > //jarkko > > > > > Thanks in advance, > > Roberto. > > > > > > Inviato da Yahoo! Mail. > > La casella di posta intelligente. > > http://it.docs.yahoo.com/mail/overview/index.html > > _______________________________________________ > > rspec-users mailing list > > rspec-users@rubyforge.org > > http://rubyforge.org/mailman/listinfo/rspec-users > > -- > Jarkko Laine > http://jlaine.net > http://dotherightthing.com > http://www.railsecommerce.com > http://odesign.fi > > > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users Inviato da Yahoo! Mail. La casella di posta intelligente. http://it.docs.yahoo.com/mail/overview/index.html _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users