Your find mock does not have the parameters that''s the problem. In
mocha u would say foo expects find with parameters.
Http://www.rubyplus.org
Free Ruby & Rails screencasts
On Mar 29, 2008, at 4:25 PM, Elliott Blatt
<rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org
> wrote:
>
> I''m a little confused about how to use BDD. Let''s say I
have a nested
> (has_many) relationship using an example we are all familiar with.
> #Models:
> class Post
> has_many :comments
> end
> class Comment
>
> belongs_to :post
> end
> Now, assuming the RESTful pattern, I have a before filter get the
> current user and to pick up the nesting @post.
>
> #Controller
> class CommentsController
> before_filter :login_required #set current_user
> before_filter: get_post #set @post
> [... the usual rest scaffold stuff ...]
> def index
> @comments = @post.comments.find(:conditions => [''user_id = ?
'',
> current_user ] )
> end
> private
> def get_post
> @post = Post.find(params[:post_id])
> end
> end
>
> #The Problem
> Because of the ActiveRecord association, @post receives the message
> (:comments)
>
> I can express this rspec expectation like this:
> @post = posts(:posts_001) #a mock post object from fixtures
> @comment = comments(:comment_001) # a mock comment from fixtures
> @post.stub!(:comments).and_return([@comment]) #stub @post.comments
> to
> return array of containing one comment.
>
> ...so far, so good.
>
> Here''s where I get stuck. I want to create an expectation for the
> find() method that I call on the ActiveRecord result set?
>
> I want to set an expectation for this line of code:
>
> @comments = @post.comments.find(:conditions => [''user_id = ?
'',
> current_user ] )
>
> My thought was that I could do the following:
>
> Comment.stub!(:find).and_return( [@comments] )
>
> But, this does not work, so I''m very confused. I''d
appreciate any
> insight that you''d be willing to share.
> --
> Posted via http://www.ruby-forum.com/.
>
> >
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---