Creating an HTTPResponse manually


I’m working on an application that reaches out to a web service. I’d
like to develop a proxy class that returns a fake response from the
service, so I don’t have to constantly be hitting it with requests while
I’m developing/testing other parts of the app.

My application is expecting a response generated via Net::HTTP.

 response = Net::HTTP.get(URI.parse(''))

 case response
 when Net::HTTPOK
   # do something fun

 when Net::HTTPUnauthorized
   # you get the idea

How can I manufacture a response object, give it all the right headers,
return a body string, etc? I assumed I need to use Net::HTTPResponse,
but I can’t find any documentation on creating an instance without going
through a request.

I’d like it to work like this:

 response = ProxyClass.response_object

 case response
 when Net::HTTPOk
   # my app doesn't know it's being lied to