2011-12-15 2 views
4

libcurl이 아닌 실제 Curl 요청을 사용하는 내 자신의 FaceBook 라이브러리를 작성했습니다.Curl 기반 FaceBook API 구현을 테스트하려면 어떻게해야합니까?

테스트 할 수있는 방법이 있습니까? 대부분의 솔루션은 fakeweb과 같은 것을 사용하기 때문에 여기에서 요구합니다. 제가 말할 수있는 한 여기서는 작동하지 않을 것입니다.

기존 코드는 on my github page입니다.

+3

중재자 편집에 신경 써서는 안되지만, "FaceBook"! – vise

답변

1

Request.dispatcher을 예상 할 수있는 행동으로 모의 할 수 있습니다. Fakeweb과 매우 유사합니다.

이 파일에 대한 몇 가지 예가 있습니다 (특별히 https://github.com/chrisk/fakeweb/blob/master/lib/fake_web/ext/net_http.rb#L44).

+0

VISA 라이브러리 제안보다 더 빨리 대답했기 때문에이 대답을 선택합니다.하지만 다른 사람들은 물론 내 감사의 표를 뽑았습니다. – vise

+0

감사! 네가 일하는 것이 좋겠어. –

+0

아직 새해 모두 : – vise

2

한 가지 방법은 (예를 들어, 로컬 호스트 : 12345) 테스트 모드에서 다른 호스트/포트를 사용하는 것입니다

그런 다음 테스트에서 당신이 요청에 응답하도록 구성 해당 포트에시나 나에 WEBrick 서블릿을 실행하여 코드를 작성해야합니다

+1

이 방법을 사용하면 응답을 기록하고 재생하기 위해 프록시 서버에서 VCR을 쉽게 사용할 수 있습니다. 예제는 https://gist.github.com/1434673 및 https://www.relishapp.com/myronmarston/vcr/docs/middleware/rack을 참조하십시오. –

1

테스트/스펙을 실행하는 경우 Request 클래스의 run 메소드를 원숭이 패치로 Marston VCR library에 연결합니다. 이 작업을 수행하는 방법에 대한 예제 및 아이디어는 기존 library_hooks 하위 디렉토리를 참조하십시오. fakeweb 구현을 시작하는 것이 좋습니다.

VCR은 상호 작용을 "있는 그대로"캡처하고 서비스 변경시 VCR을 쉽게 다시 기록 할 수 있기 때문에 Facebook과 같은 실시간 서비스에서 잘 작동합니다.

그러나 라이브러리에 문제가 있습니다. cgijson 라이브러리가 필요합니다. 레일 환경이 필요합니다 (Hashwith_indifferent_access이 없습니다).

+0

실제로 시도해 줘서 고마워. 유망한 RailsCast 에피소드를 본 후에도 실제로 VCR을 조사하고 있었지만 그 당시 진행 방법에 대해서는 확신이 없었습니다. – vise

관련 문제