2012-08-09 4 views
2

필자는 패러데이의 스터 빙 API에 대해 잘 알고 있지는 않지만 캐주얼 검사와 Balanced::Client의 출처에서 Balanced::Client.conn에 대한 내 자신의 값을 제공 할 수 있어야합니다.Balanced Ruby 클라이언트에서 패러데이와 네트워크 통화를 스텁하는 가장 좋은 방법은 무엇입니까?

라이브러리의 구성 옵션으로 스텁 된 연결 모드를 지원하는 단계입니다. 반면 토글을 사용하면 테스트 중에 발생할 것으로 예상되는 요청을 스터브로 처리하기 위해 Balanced::Client.conn을 사용할 수 있습니다.

다양한 균형 API 호출 및/또는 내 스텁의 템플릿으로 사용할 내장 스텁 응답에 대한 예제 응답 본문을 갖는 것이 유용 할 수도 있습니다.

이것은 합리적인 계획처럼 보입니까, 아니면 잘못된 방향으로 가고 있습니까? 어떻게해야합니까?

답변

2

balanced-ruby 라이브러리의 unit tests을 작성하는 방법을 살펴 보는 것이 좋습니다. 그들은 VCR을 사용하여 네트워크 호출을 기록하고 재생합니다.

정확한 질문과는 관련이 없지만 resource.rbResource 클래스에서 상속 된 모든 개체에 construct_from_response 메서드를 사용하여 일회용 개체 인스턴스를 만들 수도 있습니다. 페이로드의 uri PARAM이 필요하거나 다른 도서관 가서 서버에서 개체를 검색하려고 할 것

1.9.3p194 :034 > payload = {:name"=>"Bob", :uri=>"/v1/marketplaces/M123/accounts/fake"} 
1.9.3p194 :035 > account = Balanced::Account.construct_from_response payload 
1.9.3p194 :036 > account.name 
=> "Bob" 

주 : 이것은 당신과 같이 객체의 단일 인스턴스를 만들 수 있습니다.

+1

VCR의 표준의 repo 여기에 이동 : https://github.com/vcr/vcr – styger

0

이렇게 할 수 있습니다. 보석을 webmockhttps://github.com/bblimke/webmock

를 사용하여 스텁 자신을 요청

stub_request(:get,"https://<your secret key>:@api.balancedpayments.com/v1/customers email=#<test email>") 
.with(:headers => {'Accept'=>'*/*', 
        'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 
        'User-Agent'=>'balanced-ruby/0.7.4'}) 
.to_return(:status => 200, :body => "", :headers => {})