Testing ActiveResource models with HttpMock

Hi all,

I have already spent (too) many hours trying to wire HttpMock in my
test suite and I am stuck. I'm setting up my "remote fixtures" using
a technique quite similar to what's described here:
http://giantrobots.thoughtbot.com/2007/2/2/activeresource-and-testing
but even the simplest of my test requests are not accepted. I always
bump into "ActiveResource::InvalidRequestError: No response recorded
for ..."

I see two problems:

1. The real API requires HTTP Basic Authentication so all my client
requests include an authorization header which I've added to my
request. But as there's no documentation at all about how to do this,
I might be mistaken. I am adding the expected request header as
follow:

     request_headers = {
       'Authorization' => 'Basic REPLACEDBUTYOUGETTHEIDEA=='
     }

     ActiveResource::HttpMock.respond_to do |mock|
       mock.get "/contacts.xml", request_headers, load_remote_fixtures
('contacts.xml')
     end

2. I am wondering if this bug http://codeintensity.blogspot.com/2007/05/bug-in-activeresources-httpmock.html
has actually ever been fixed, looking at HttpMock's code, I don't see
how the ordering of the hash key is guaranteed, unless there's some
more ActiveSupport magic involved (but I don't think so).

Any help about this will be greatly appreciated. If I judge by the
number of results returned by my various Google searches on that
topic, it seems like there are not many people using ActiveResource
testing... or only a bunch unlucky few have problems with it. :wink:

Regards,

Xavier

I just wrote a blog post summarizing what I could find, and how we are
going to address the problem of testing (hit a real server with the AR
client):

http://pivotallabs.com/users/chad/blog/articles/656-automated-end-to-end-integration-testing-for-activeresource-apis

-- Chad