David Green
2007-Jun-01 09:00 UTC
[rspec-users] rspec_on_rails, could someone provide an example of using mocks/stubs?
hi all
I''m still a little uncertain on how to use mocks/stubs with rspec when
dealing with associations. I know the point is to isolate the code being
tested and remove external dependencies, but I''m not sure how to
implement
it. Can someone suggest how they would spec the code below:
I have a Book model and Review model
class Book < ActiveRecord::Base
has_many :reviews
def update_rating
new_rating = 0.0
unless reviews.empty?
reviews.each {|r| new_rating += r.rating}
new_rating /= review.size
end
update_attribute(:rating, new_rating)
end
end
The review class is just a standard model with a :rating attribute.
Here''s
the (empty) spec i came up with:
describe Book, ".update_rating" do
it "should set rating to 0.0 when there are no reviews" do
end
it "should set :rating to the average rating when there are reviews"
do
end
end
I know I''m supposed to implement the specs first but I wrote the
update_attribute() method here to show the kinds of method calls it would be
making. Here''s what I think I need to do:
- stub @book.reviews to return a mock object e.g. mock_reviews
- stub mock_reviews.each to return another mock e.g. mock_r
- stub mock_r.rating to return some value
am I on the right track? it seems like a lot of preparation for such a
simple test. Is there a better way?
thanks
dave
--
View this message in context:
http://www.nabble.com/rspec_on_rails%2C-could-someone-provide-an-example-of-using-mocks-stubs--tf3851161.html#a10909256
Sent from the rspec-users mailing list archive at Nabble.com.
