On 27 May 2008, at 12:44, andypearson wrote:
xml = REXML::Document.new Net::HTTP.get(URI.parse(feed.url))
It won't make the problem go away, but you can certainly reduce the
blizzard of intermediate stubs by pulling this chain out into its own
method (e.g. fetch_xml_from_url) and stubbing that method once in your
cache_all spec.
it has led to an awful amount of mocks and stubs, and I am not even
sure whether they
are asking the correct things of the method.
Can anyone give me some pointers on how to write useful, meaningful
specs
for this method?
What part of its behaviour do you care about? (Refactoring into more
fine-grained methods might help again here.) It seems as though all
you're interested in is that 1. the feed URLs get fetched from the
database, 2. the feed contents get fetched from the URLs, and 3.
Item.prepare_and_save gets called for each item in each feed. So,
ideally, that's what your specs for this method should be saying.
The other thing I have found is that I seem to have incorrectly
stubbed
xml.elements.each meaning that the contents of the block are never
called,
how should I be specifying this behavior?
Use #and_yield, not #and_return. (And you might as well use an actual
mock, rather than [EMAIL PROTECTED], since you're stubbing the only method
you plan to call on it.)
Cheers,
-Tom
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users