Ruby WebMock: Getting Actual Parameters Passed Through a Method and Using Them in Spec File

638 views Asked by At

I'm using WebMock to stub out HTTP requests. I have this one particular call where, instead of creating dummy data to pass through, I want to be able to capture the actual parameters I would pass into my send() method. Therefore, I need access to those actual parameters in my spec and I imagine I would need to somehow capture that context.

So, for example, in my application I'm calling this method:

  send(method, uri, :body => data_file)

And in my spec file I'm stubbing the method:

  FoobarModule.should_receive(:send).with(args)

Is there any way I could -- in WebMock, Rspec -- get the context of when send() is being called in the application and grab those parameters I'm passing through to use them within the spec and replace them with args?

I've looked through the documentation and I don't see much of anything on this. If there's anyone aware of this, I would greatly appreciate your help. Thanks.

1

There are 1 answers

1
Bartosz Blimke On

Using WebMock you could use request callbacks to capture request data:

WebMock.allow_net_connect!
WebMock.after_request do |request_signature, response|
 puts request_signature
end