From: Pat Maddox Date: 2006-05-16T07:08:58+09:00 Subject: BDD and mocking objects Brian Hughes discussed BDD [1] in a recent post, which piqued my interest enough to check out RSpec. I used his idea and went through the first chapter of Refactoring to learn the rspec ropes. The most interesting stuff is the specs for Customer, but they're kind of long, so I'm going to show a less interesting spec. context "A new rental" do setup do @movie = Movie.new("New Movie", Movie::REGULAR) @rental = Rental.new(@movie, 3) end specify "should have a movie and rental length" do @rental.movie.should_be @movie @rental.days_rented.should_be 3 end end I'm wondering if I should be using a mock instead of creating a new Movie object in setup. This is a trivial example and perhaps it would be unnecessary, but I want to know if I "get it." I'm testing a Rental's behavior, so I really don't care about how a Movie behaves. As long as my Rental gets an object that behaves the same way a movie does, it should be happy. In this case, I don't care about a Movie's title or code, so I could pass in a nil object if I wanted to. Would I want to mock the @movie then? Doesn't matter much in this particular case, but assume that one of my Rental methods relied on a method or two of Movie. Thanks for any input. Pat [1] http://www.ruby-forum.com/topic/65640#77053