0

For my project I use rake test for testing my libs. For example, I've got a method, like connection.users.add_users(options)

json_response = check_users(options) 
batch = nil
Timeout::timeout(30) do
  begin
    sleep 1            
    batch = connection.batches.find(json_response["batch_id"])
  end while batch.state !="completed"
end
connection.users.add_users(batch.target_id, options)

So, first I make an HTTP request to my service, then I get the response (batch_id), loop until the batch is finished, then make another request and return the response.

Usually, in specs I do

let(:connection){setup_test_connection('{"batch_id": 344235}', '202')}

Which will stub connection's response, but in the case of this method it stubs only the first call and then tries to make a real request to my service and so I get an error (timeout because the service is actually down at that time).

Is there any way to stub every possible call of connection's class methods?

Darshan Rivka Whittle
  • 32,989
  • 7
  • 91
  • 109
Andrey Eremin
  • 287
  • 1
  • 4
  • 14

1 Answers1

0

So i found out.

I should have used stubs to fake inside requests like this:

connection.servers.stubs(:schedule_create).returns({"batch_id" => 235234})
Andrey Eremin
  • 287
  • 1
  • 4
  • 14