2012-07-02 2 views
0

제 프로젝트의 경우, 제 라이브러리를 테스트하기 위해 레이크 테스트를 사용합니다. 예를 들어, 내가 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) 

그래서 같은 방법을 가지고, 처음으로 내 서비스에 HTTP 요청을, 그때는 응답 (BATCH_ID) 배치가 완료 될 때까지, 루프, 후하게 서로를 얻을 응답을 요청하고 리턴하십시오.

보통 사양에 내가 connection의 반응을 스텁 것입니다 어느

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

을 할 수 있지만,이 방법의 경우에만 첫 번째 통화를 스터브 다음 내 서비스에 대한 실제 요청을 시도하고 그래서 오류가 발생합니다 (서비스가 실제로 그 시간에 종료 되었기 때문에 시간 초과).

connection의 클래스 메소드를 호출 할 때마다 가능한 모든 메소드를 스텁 할 수 있습니까?

+0

당신이 실제로 통화를 스텁 않는 방법에 대한 자세한 정보를 제공하시기 바랍니다 수 :

이 같은 가짜 내부의 요청에 스텁을 사용해야? – binarycode

+0

나는 다음을 시도한다 : @mock = MiniTest :: Mock.new 그리고 나서 @ mock.expect (: find, 42) - 이처럼 –

+0

은 정확히 어떻게 당신이 당신의'connection' 호출을 스텁합니까? 귀하의 질문에서 명확하지 않습니다. 'setup_test_connection'은 무엇을 하는가? – binarycode

답변

0

그래서 알았습니다.

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