[rspec-users] I need some guidance

jimmy zimmerman jimmy.zimmerman at gmail.com
Fri Dec 21 13:30:49 EST 2007


I'm building an http communicator class for a web service API wrapper and
I'm trying to go through the BDD process in doing so. I'm having a bit of a
struggle figuring out how to set up the tests in relation to isolating
things appropriately as well as testing behavior vs testing implementation.

Specifically, I'm trying to set up a post method on my HttpCommunicator so I
have the following:

describe FamilyTreeApi::HttpCommunicator, "post" do
it "should accept an endpoint and an xml string to post" # I'm okay with
this one
it "should perform post content to given endpoint"
it "should return a response object"
end

I have written/passed the tests for the first spec, but I'm having troubles
figuring out how to verify behavior for the second and third, and how to
mock/stub it up. I'll be using the 'net/https' standard libraries to
implement the POST action, and I know that it requires the use of a URI
instance, a Net::HTTP instance, and a Net::HTTP::Post request instance.

I don't want to hit the actual web service each time I run the test, so I'd
like to stub or mock this in some way. I think I just need some guidance on
how to approach something like this.

Do I just ignore the implementation details?
Do I push the actual posting of data to a private method and mock that
method so that I can verify that it is being called?
Would you recommend I actually hit the web service?

Any help is greatly appreciated.
-- 
Jimmy Zimmerman
http://jimmyzimmerman.com/blog/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/rspec-users/attachments/20071221/4610b75e/attachment.html 


More information about the rspec-users mailing list