Ruby 用于rake测试的存根重复方法调用

Ruby 用于rake测试的存根重复方法调用,ruby,rake-test,Ruby,Rake Test,对于我的项目,我使用rake测试来测试我的libs。例如,我有一个方法,比如connection.users.add\u users(options) 因此,首先我向我的服务发出一个HTTP请求,然后我得到响应(批处理id),循环直到批处理完成,然后发出另一个请求并返回响应 通常,在规格上我是这样做的 let(:connection){setup_test_connection('{"batch_id": 344235}', '202')} 它将存根连接的响应,但在这种情况下,它只存根第一个调

对于我的项目,我使用rake测试来测试我的libs。例如,我有一个方法,比如
connection.users.add\u users(options)

因此,首先我向我的服务发出一个HTTP请求,然后我得到响应(批处理id),循环直到批处理完成,然后发出另一个请求并返回响应

通常,在规格上我是这样做的

let(:connection){setup_test_connection('{"batch_id": 344235}', '202')}
它将存根
连接的响应,但在这种情况下,它只存根第一个调用,然后尝试向我的服务发出真正的请求,因此我得到一个错误(超时,因为此时服务实际上已关闭)

是否有任何方法可以存根
连接的所有可能调用
的类方法?

所以我发现了

我应该用存根来伪造像这样的内部请求:

connection.servers.stubs(:schedule_create).returns({"batch_id" => 235234})

你能提供更多的细节来说明你实际上是如何存根你的呼叫的吗?我试着这样做:@mock=MiniTest::mock.new,然后是@mock.expect(:find,42)-就像这样,我的意思是你到底是如何存根你的
连接
呼叫的?你的问题不清楚。
setup\u test\u connection
做什么?方法setup\u test\u connection创建新的望远镜::connection.new obj+做一些存根。
connection.servers.stubs(:schedule_create).returns({"batch_id" => 235234})