2012-05-25 4 views
1

내 개발 환경에서 특정 메서드를 동적으로 스텁하는 안정적인 방법을 찾고 있습니다. 예를 들어 Facebook Graph API에 대한 액세스가 필요하지만 인터넷에 액세스 할 수없는 개발을해야하는 경우를 예로들 수 있습니다. fb_graph 메소드에 대한 호출을 스텁 (stub)하여 인증을 받고 프로파일 데이터가있는 것처럼 보이게하고 싶습니다. 이상적으로는 사소한 설정 변경으로 스텁을 켜거나 끌 수 있습니다.Rails 개발 환경에서 스텁하는 방법은 무엇입니까?

아이디어가 있으십니까? 모카가 이걸 처리 할 수 ​​있다고 생각하고 있나?

답변

1

당신은 사용 후 YML 파일로 초기 HTTP 요청의 결과를 기록 할 VCR 보석을 사용 할 수 있습니다 후속 http 요청에서 해당 yml 파일의 내용 그런 다음 VCR 논리를 무시하도록 구성 할 수 있으며 원하는 경우 항상 HTTP 요청을 수행 할 수 있습니다.

1

모카가 확실히 할 수 있습니다. 그러나 그것은 약간 이상하다고 느낀다.

또한 의존성 주입과 같은 작업을 수행 할 수도 있습니다.

예를 들어

:

class User < AR::Base 

    def find_friends 
    Facebook.find_friends(facebook_id) 
    end 

end 

class Facebook 

    def self.find_friends(id) 
    # connect to Facebook here 
    end 

end 

class FakeFacebook 

    def self.find_friends(id) 
    # a fake implementation here 
    end 

end 

를하고 초기화 내부 :

if Rails.env.development? 
    User::Facebook = FakeFacebook 
end 
관련 문제